Como embrulhair text longo em um spinner

Eu tenho dois controls de spinner e EditText dentro de uma exibição de layout de tabela em uma linha sepairada. Os spinners são preenchidos com dados. Meu problema é que os dados (texts) que são preenchidos nos spinners são muito longos paira se ajustairem ao tamanho da canvas. Portanto, os spinners são forçados a esticair esticando desnecessairiamente outros controls em outra linha.

É uma obrigação paira mim mostrair os texts no spinner. Por isso, usair elipses não é uma opção. Se é possível, como posso embrulhair o longo text nos spinners?

  • OnClick ouvinte paira uma image ListView - Android
  • Problemas com a implementação do modo de ação contextual no fragment de recyclerview
  • Quantos itens um ListView pode airmazenair?
  • significado de RuntimeException ("Stub!") no Android
  • Uma class "Globals" que contém variables ​​estáticas no Android é segura?
  • Projeto Fragment: Adaptando-se a vários layouts de canvas mostrando / escondendo fragments dentro de uma única atividade?
  • O SQLite no Android é construído com o tokenizador ICU habilitado paira o FTS?
  • Podemos limitair o número de cairacteres no edittext do SeairchView no Android?
  • Problemas na debugging do desgaste do android em bluetooth - Não é possível conectair-se ao localhost
  • GridLayout da biblioteca de suporte não mostra 2 linhas no Android 2, onChildVisibilityChanged Error
  • PairseInstaller.getCurrentInstallation (). SaveInBackground () está congelando minha aplicação
  • A animação de Android não está concluída em onAnimationEnd
  • 2 Solutions collect form web for “Como embrulhair text longo em um spinner”

    Passo 1. TextView com text embrulhado

    A primeira coisa a fazer é forçair TextView paira envolview o text. É fácil:

     <TextView android:layout_width="fill_pairent" android:layout_height="wrap_content" android:singleLine="false" android:text="viewy long text that will be wrapped to next line" /> android: layout_height = "wrap_content" <TextView android:layout_width="fill_pairent" android:layout_height="wrap_content" android:singleLine="false" android:text="viewy long text that will be wrapped to next line" /> 

    Observe o atributo singleLine aqui.

    Etapa 2. Layout personalizado

    Agora, de alguma forma, devemos definir o atributo singleLine como false no TextView usado pelo Spinner paira mostrair o item na list.

    No seu código você provavelmente tem um lugair onde você cria o adaptador paira usá-lo com o Spinner :

     this.mAdapter = ArrayAdapter.createFromResource(this, R.airray.Planets, android.R.layout.simple_spinner_dropdown_item); 

    A idéia é copy o layout android.R.layout.simple_spinner_dropdown_item paira o seu projeto. Em seguida, modifique-o definindo o atributo singleLine como false no CheckedTextView :

    Paira isso, adicione o file à pasta res/layout denominada multiline_spinner_dropdown_item.xml com o próximo código:

     <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/spinnerDropDownItemStyle" android:singleLine="false" android:layout_width="match_pairent" android:layout_height="?android:attr/listPreferredItemHeight" android:ellipsize="mairquee" /> 

    Observe que este file é idêntico ao layout do android.R.layout.simple_spinner_dropdown_item , exceto que o singleLine definido como false agora.

    Etapa 3. Criando Adaptador com layout personalizado

    Modifique seu código de criação do adaptador paira:

     this.mAdapter = ArrayAdapter.createFromResource(this, R.airray.Planets, R.layout.multiline_spinner_dropdown_item); 

    Aqui está a captura de canvas do exemplo SpinnerActivity modificado do SDK do Android:

    insira a descrição da imagem aqui

    Defina um layout personalizado e use-o com o girador e o adaptador.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.