2012-04-09 18 views
3

Es gibt ein interessantes Problem, über das ich während der Arbeit an einem Android Honeycomb-Projekt gestolpert bin. Wie Sie in der folgenden Abbildung sehen können, wird beim Erweitern eines Spinner in einem Dialog die Navigationsleiste am unteren Rand überlappt. Daher kann das Element am unteren Rand nicht ausgewählt werden.Android unteren Navigationsleiste überlappende Spinner. Set Spinner dropdown height/margin

Um dies zu beheben, habe ich versucht, android:fitsSystemWindows="true" im Spinner Widget. Es hat nicht funktioniert. Außerdem habe ich festgestellt, dass wir ein XML-Attribut für die Dropdown-Breite android:dropDownWidth haben, aber keines für die Höhe.

Navigation Bar overlapping Spinner

Hier ist das XML-Layout für den 3 Spinner:

<TableRow> 

     <Spinner 
      android:id="@+id/order_dialog_category_code_Spinner" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:fitsSystemWindows="true" /> 

     <Spinner 
      android:id="@+id/order_dialog_packing_code_Spinner" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:fitsSystemWindows="true" /> 

     <Spinner 
      android:id="@+id/order_dialog_product_Spinner" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:fitsSystemWindows="true" /> 
    </TableRow> 

Ich werde Testen halten und hoffen, bald eine Lösung zu finden, aber es ist eine interessante Frage, und es verdient gebucht werden.

Ich habe noch nicht in Android ICS getestet, aber ich denke, es könnte genauso funktionieren.

EDIT

ich es geschaffen, etwas von einer Fehlerbehebung durch das android:layout_marginBottom Attribut für den Spinner mit. Es hat das Problem gelöst, aber jetzt habe ich auch den Rand in der Dialogansicht und ich will das nicht.

Spinner overlapping temporary fix

Wer weiß, wie der Marge für die Drop-Down-Ressource nur setzen?

Antwort

2

Nach einigem Nachforschungen scheint es, dass Sie nicht die Höhe des Spinner-Dropdown oder andere Layout-Attribute manipulieren können.

Dies liegt daran, dass das Dropdown-Menü tatsächlich ein Popup-Dialogfeld ist, das nicht über die Ansicht "Spinner" aufgerufen werden kann.

Diese Antwort heißt es klar: https://stackoverflow.com/a/1918655/529138

So näht es, dass ich android:layout_marginBottom verwenden, wie in der Frage angegeben.

+0

Ich habe das gleiche Problem, wirklich nerviger Fehler, haben Sie eine bessere Lösung gefunden? – Jakob

+0

Leider nicht. Ich habe das Problem nicht erneut angeschnitten. – Bandreid

3

Sogar ich konfrontiert das gleiche Problem. Im Gegensatz zu deinem Bildschirm hat mein Bildschirm nur eine Option. Also habe ich eine Änderung vorgenommen, die android ändert: spinnerMode: "dialog".

<Spinner 
     android:id="@+id/dialog_spinner" 
     android:spinnerMode="dialog" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     > 

Dies würde Ihre Liste in einem neuen Dialog anzeigen. Nur für den Fall, dass Leute mit ähnlichen Problemen suchen können.