4

Android Honeycomb プロジェクトに取り組んでいるときに、興味深い問題に遭遇しました。下の画像でわかるように、ダイアログでスピナーを展開すると、下部のナビゲーション バーが重なって表示されます。したがって、最下部の要素は選択できません。

これを修正するためにandroid:fitsSystemWindows="true"、Spinner ウィジェットで使用してみました。それは動かなかった。また、ドロップダウンの幅には XML 属性がありますandroid:dropDownWidthが、高さには何もありません。

スピナーに重なっているナビゲーション バー

3 つのスピナーの XML レイアウトは次のとおりです。

    <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>

私はテストを続け、すぐに解決策を見つけたいと思っていますが、これは興味深い問題であり、投稿する価値があります.

私はまだ Android ICS でテストしていませんが、同じように動作する可能性があると思います。

編集

android:layout_marginBottomスピナーの属性を使用して、ある程度の修正を行いました。問題は解決しましたが、ダイアログビューにもマージンがあり、それは望ましくありません。

スピナー重複一時修正

ドロップダウン リソースのみにマージンを設定する方法を知っている人はいますか?

4

2 に答える 2

2

私も同じ問題に直面しました。あなたの画面とは異なり、私の画面には 1 つのオプションしかありません。そこで、android:spinnerMode:"dialog" を変更する修正を行いました。

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

これにより、リストが新しいダイアログに表示されます。念のため、同様の問題で検索している人に役立つかもしれません。

于 2013-07-23T14:19:58.287 に答える
2

さらに調査した結果、スピナードロップダウンの高さ、またはその他のレイアウト属性を操作できないようです。

これは、ドロップダウンが実際にはスピナー ビューからアクセスできないポップアップ ダイアログであるためです。

この回答は明確に述べています:https://stackoverflow.com/a/1918655/529138

したがってandroid:layout_marginBottom、質問で指定されたとおりに使用する必要があると思われます。

于 2012-04-09T15:52:48.870 に答える