2016-04-26 15 views
1

Ich habe ein Problem beim Anzeigen von Spinner in Android. das ist multiline Android 5.1.1 wird nicht angezeigt .. aber unter android, wenn die multiline ist der Code, den ich verwende, ist das folgende.Android Spinner funktioniert nicht Multiline

Derselbe Code Recht eine andere Frage, aber nicht sehen Antwort mich

/res/values/arrays.xml zu helfen:

<string-array name="items"> 
<item>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt.</item> 
<item>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est.</item> 

res/layout/spinner_item. xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    style="?android:attr/spinnerDropDownItemStyle" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:ellipsize="none" 
    android:minHeight="?android:attr/listPreferredItemHeight" 
    android:singleLine="false" /> 

Set Adapter

spinner.setAdapter(ArrayAdapter.createFromResource(this, 
      R.array.items, 
      R.layout.spinner_item)); 

bitte helfen Sie mir

Antwort

2

Aufschalten getDropDownView Methode in ArrayAdapter und setzen setSingleLine (false) in post-Methode betrachtet. Wenn die Ansicht vollständig erstellt wurde, wird der Text in die entsprechenden Zeilen umgebrochen.

@Override 
    public View getDropDownView(final int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      convertView = new TextView(_context); 
     } 

     TextView item = (TextView) convertView; 
     item.setText("asddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"); 
     final TextView finalItem = item; 
     item.post(new Runnable() { 
      @Override 
      public void run() { 
       finalItem.setSingleLine(false); 
      } 
     }); 
     return item; 
    } 

For details visit

+0

Hallo Dank für die Beantwortung. wo ich diesen Code einstelle. –

+0

Können Sie näher erläutern, warum 'setSingleLine (false)' in der Post-Methode aufgerufen werden muss? – natronite