Ik heb een EditText
en een Button
naast elkaar op dezelfde horizontale lijn gezet. Het ziet er geweldig uit, behalve wanneer de gebruiker veel tekst invoert, wordt de grootte van de EditText
gewijzigd en wordt de Button
geplet.
Ik heb zowel EditText
als Button
ingesteld op layout_width="wrap_content"
. "fill_parent"
verpest de lay-out en ik wil geen absolute maten gebruiken als dat niet nodig is – zoals het nu is, ziet het er geweldig uit in zowel landschap als portret, ik doe het gewoon niet u wilt niet dat de EditText
het formaat wijzigt.
Mijn lay-out:
<TableLayout
android:id="@+id/homelayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableRow>
<TextView
android:id="@+id/labelartist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Find artists:" />
</TableRow>
<TableRow>
<EditText
android:id="@+id/entryartist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="6"
android:background="@android:drawable/editbox_background"
android:editable="true"
android:padding="5px"
android:singleLine="true" />
<Button
android:id="@+id/okartist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:layout_weight="1"
android:text="Search" />
</TableRow>
</TableLayout>
Antwoord 1, autoriteit 100%
Voor gebruik met EditText
android:layout_width="0dp" - not required but preferred.
android:layout_weight="1"
En specificeer voor Button niet android:layout_weight
Antwoord 2, autoriteit 16%
Wat ik doe is in de onCreate voor de activiteit, meet eerst de EditText en pas dan de maxWidth toe.
U kunt dit doen met een code die lijkt op de volgende:
EditText someedittext = (EditText)findViewById(R.id.sometextview);
someedittext.setMaxWidth(someedittext.getWidth());
Antwoord 3, autoriteit 6%
Geef EditText
een maxWidth
. Dat zou moeten voorkomen dat het formaat groter wordt dan de breedte die u hebt opgegeven. Als u wilt dat het zich binnen 1 regel bevindt, stelt u ook de instelling maxLines
in op 1.
Antwoord 4, autoriteit 3%
Je moet android:imeOptions toevoegen om dit gedrag te voorkomen.
Antwoord 5, autoriteit 2%
Gebruik gewoon:
android:layout_width="fill_parent"
voor zowel EditText als Button. Het werkt ook ingesteld voor EditText, maar het is beter om het op beide te hebben.
Antwoord 6
u kunt de grootte van uw bewerkingstekst definiëren zoals hierboven weergegeven
android:minWidth="80dp"
android:maxWidth="80dp"
of
android:layout_width="60dp"
of
u kunt een achtergrondafbeelding van de gewenste grootte toepassen
maar vergeet niet om de hoogte en breedte te definiëren
met wrap_content.
android:layout_width="wrap_content"
android:layout_height="wrap_content"
Antwoord 7
Ik had een soortgelijk probleem, maar ik kreeg het bovenstaande niet werkend. Wat ik deed, is de tekst uit het vak EditText opnemen en deze vervolgens formatteren tot de maximale grootte die mijn scherm aankan. Wanneer ik dit opsla in de DB, zal ik het opslaan als weergavetekst en originele tekst.
Als je naar deze paginagaat, geef ik een langere uitleg.
Antwoord 8
De juiste manier om dit te doen is om android:minWidth en android:maxWidth gelijk te stellen aan de gewenste breedte. Op deze manier hoeft u uw lay-out niet aan te passen om de android:layout_weight te gebruiken.
Als u bijvoorbeeld wilt dat uw EditText altijd 80 dichtheidspixels heeft, ongeacht het aantal tekens dat u typt, gebruik dan het volgende:
android:minWidth="80dp"
android:maxWidth="80dp"
Antwoord 9
Ik had de exacte vraag. Maar ik had een EditText en een Button naast elkaar in een lineaire lay-out.
Ik heb android:layout_weight=”1″ geprobeerd voor EditText
android:layout_width=”0dp”
En het werkte gewoon perfect!!
Hartelijk bedankt!
Antwoord 10
De gekozen oplossing werkt, maar laat me een kleine aanvulling toevoegen:
als je gebruikt
android:layout_weight="0.15"
(de waarde is niet belangrijk)
dan
android:layout_width="0dp"
als de LinearLayout
Horizontaal is
of
android:layout_height="0dp"
als de LinearLayout
verticaal is.