Pergunta

eu tenho um EditText e a Button Situado um ao lado da outros na mesma linha horizontal. Parece ótimo, exceto quando o usuário entra em muito texto, o EditText é redimensionado e o Button é esmagado.

eu tenho ambos EditText e Button definido como layout_width="wrap_content". "fill_parent" bagunçar o layout, e não quero usar tamanhos absolutos se não precisar - a maneira como agora é ótima na paisagem e no retrato, eu simplesmente não quero EditText para redimensionar.

Meu layout:

<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>
Foi útil?

Solução

Para uso EditText

android:layout_width="0dp" - not required but preferred.
android:layout_weight="1"

E para o botão, não especifique android:layout_weight

Outras dicas

O que faço é no OnCreate para a atividade, meça o EdittEXT primeiro e depois aplique sua maxwidth.

Você pode fazer isso usando código semelhante ao seguinte:

EditText someedittext = (EditText)findViewById(R.id.sometextview);
someedittext.setMaxWidth(someedittext.getWidth());

Dar EditText uma maxWidth. Isso deve impedir que ele redimensione além da largura que você forneceu. Além disso, se você deseja que ela esteja contida em 1 linha, defina o maxLines definindo para 1 também.

Apenas use:

android:layout_width="fill_parent"

para EdittExt e Button. Também funcionará definido para o EditText, mas é melhor tê -lo em ambos.

enter image description here

Você precisa adicionar Android: imeoptions para evitar esse comportamento.

Clique aqui

Você pode definir o tamanho do seu EditText, como mostra acima

android:minWidth="80dp"
android:maxWidth="80dp"

ou

android:layout_width="60dp"

ou

Você pode aplicar uma imagem em segundo plano que deseja, mas não se esqueça de definir sua altura e largura com wrap_content.

  android:layout_width="wrap_content"
  android:layout_height="wrap_content"

Eu tive um problema semelhante, mas não conseguia fazer o que foi funcionar acima. O que eu fiz é pegar o texto da caixa EdittExt e, em seguida, formatá -lo até o tamanho máximo que minha tela poderia suportar. Quando eu salvo isso no banco de dados, salvamos como texto de exibição e texto original.

Se tu vais para esta página Eu coloquei uma explicação mais longa.

A maneira correta de fazer isso seria definir o Android: Minwidth e Android: MaxWidth igual à largura que você deseja. Dessa forma, você não precisará ajustar seu layout para usar o Android: layout_weight.

Por exemplo, se você deseja que seu EditText seja sempre 80 pixels de densidade, não importa quantos caracteres você digite usar o seguinte:

android:minWidth="80dp"
android:maxWidth="80dp"

Eu tive a consulta exata. Mas eu tinha um EditText e um botão um ao lado do outro em um layout linear. eu tentei Android: layout_weight = "1" para edittextAndroid: layout_width = "0dp" e funcionou perfeito !! Muito obrigado!

A solução escolhida funciona, mas deixe -me acrescentar um pouco de complemento:
se você usarandroid:layout_weight="0.15" (o valor não é importante)
então
android:layout_width="0dp" se o LinearLayout é horizontal
ou
android:layout_height="0dp" se o LinearLayout é vertical.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top