Hoe voorkom ik dat een EditText zichzelf verkleint wanneer de gebruiker aan het typen is?

Ik heb een EditTexten een Buttonnaast elkaar op dezelfde horizontale lijn gezet. Het ziet er geweldig uit, behalve wanneer de gebruiker veel tekst invoert, wordt de grootte van de EditTextgewijzigd en wordt de Buttongeplet.

Ik heb zowel EditTextals Buttoningesteld 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 EditTexthet 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 EditTexteen 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 maxLinesin 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 LinearLayoutHorizontaal is
of
android:layout_height="0dp"als de LinearLayoutverticaal is.

Other episodes