2012-05-15 19 views
5

私のアプリケーションでは、私自身のアクションバーを作ってあり、とてもうまく動作します。Androidカスタムオーバーフローメニュー(アクションバーとメニューボタンなし)

しかし、私はメニューボタンのないICSデバイスのオーバーフローボタンの動作を使用したいと思います。

ICSにアクションバーとは別のカスタムオーバーフローボタンを実装する方法はありますか?

ありがとうございます!

+0

を明確にします。 – DagW

+0

http://developer.android.com/resources/samples/ActionBarCompat/index.htmlを見ましたか? – techiServices

答えて

19

userSeven7sのほとんどはListPopupWindowですが、この場合の適合度はPopupMenuとなり、標準menu.xmlを増やすことができます。右上にViewまたはButtonを置くことができ、onClickハンドラには、PopupMenuを作成して表示することができます。

例はApiDemos>ビュー>ポップアップメニューにあります。具体的にPopupMenu1.java: は、私は3つのドットと下部に黒いバーを取り除きたい、とisteadは私のカスタムアクションバーでの私の独自のバージョンを実装:

public void onPopupButtonClick(View button) { 
    PopupMenu popup = new PopupMenu(this, button); 
    popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu()); 

    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
     public boolean onMenuItemClick(MenuItem item) { 
      Toast.makeText(PopupMenu1.this, "Clicked popup menu item " + item.getTitle(), 
       Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
    }); 

    popup.show(); 
} 
+0

パーフェクト!それはcompabilityパッケージとavailibleですか? – DagW

+1

いいえ、バックポートするのはむしろ難しいと思います。しかし、私は実際にそれを持っているデバイス(すべてのAndroid 2.x)上の既存のメニューボタンを利用し、メニューボタンなしのデバイスでポップアップメニューを使用するだけで、http://developer.androidでこれを検出することをお勧めします。 com/reference/android/view/ViewConfiguration.html#hasPermanentMenuKey()。 –

+0

ポップアップメニューを使用すると、アイコンを追加できません –

0

あなたはActionBar Sherlockを見ましたか? ABSは、アンドロイド2.1以上を実行しているすべてのデバイスにアクションバーをサポートしています。 ActionBarCompatサンプルは非常に限られており、古いデバイスのオーバーフローメニューをサポートしていません。オーバーフローを有効にするにはTheme.Sherlock.ForceOverflowテーマを使用してください。

http://actionbarsherlock.com/

また、あなたがやりたいQuickActionライブラリを変更することができます。

https://github.com/lorensiuswlt/NewQuickAction

0

あなたはより多くのオプションへのアクセスをできるように、あなたのアクションバーをスクロール/スライド可能性があります。 HorizontalScrollView.

あなたはまた、PopupWindowクラスhereを見てみたいかもしれない、とListPopupWindowドキュメントhereであなたのアクションバーを置きます。

関連する問題