14

ICS の ActionBar のオーバーフロー メニュー ボタンのように、ドロップ ダウン メニュー付きのボタンを作成したいと考えています。Android 2.xにはPopupMenuがないため、問題があります。Spinner を使用する 2 番目の方法ですが、Spinner は常にカスタム背景または選択したアイテムの最初のアイテムを表示するため、私には向いていません。どうすれば達成できますか?一般的に、私は ContextMenu が必要ですが、ほとんどなく、位置をクリックしたビューです。ありがとう。

次のようになります。 右上隅のオーバーフロー メニュー

4

3 に答える 3

11

目的がアクション バーを再作成することである場合は、これらの機能をバックポートするActionBarSherlockプロジェクトを参照できます。

このようなメニューをアプリの任意の場所でポップできるようにしたい場合は、 ActionBarSherlockプロジェクトのソース コードでMenuPopupHelperクラスの実装を読むことができます。

于 2012-07-04T13:23:22.710 に答える
3

私はそのようなことのためにPopupWindowを使用します。Menu を指定して でイベントに応答するだけの PopupMenu よりも手間がかかりますOnMenuItemClickListener.onMenuItemClick()。PopupWindow を使用して、コンテンツ ビューを提供し、やや低いレベルでクリックを処理します。

それでも、それほど問題なく作業を完了できます。このshowAsDropDown()メソッドを使用すると、必要に応じて、ポップアップを別のビューに固定できます (ドロップダウン メニューまたはポップアップ メニューとして適切に配置できます)。これは API レベル 1 から存在しており、すべてのテスト デバイスでうまく機能しています。

于 2012-07-06T05:01:42.067 に答える
1

あなたの要件に代わるものは、リストビューを作成し、それをボタンの下に配置し、デフォルトで可視性を非表示に設定し、ボタンをクリックするとリストビューの可視性を切り替えることができます....たとえば

button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if (LISTVIEW.isShown()) {
                    LISTVIEW.setVisibility(View.INVISIBLE);
                } else {
                    LISTVIEW.setVisibility(View.VISIBLE);
                }

これが役立つかどうか教えてください...

于 2012-07-04T07:02:51.287 に答える