2012-02-27 11 views
0

カスタムのActionBarを実装していますが、オーバーフローメニュー(ここでは3ドットのアイコン:http://developer.android.com/images/ui/actionbar.png)をどのように処理すればよいですか?ハードウェアメニューボタンがない場合、オーバーフローメニューが表示されるはずですが、どうすれば検出できますか?カスタムアクションバーとオーバーフローメニュー

私はカスタマイズされた動作が必要なので、システムActionBarを使用していません。

答えて

1
ViewConfiguration.get(context).hasPermanentMenuKey() 
0

メニューボタンはsomewhat outdatedです。オーバーフローメニューを再検討したいと思いますか?そして、ところで、あなたはhttp://actionbarsherlock.com/を知っていますか?

+0

アンドロイド4.0アクションバーは、HWのメニューボタンを持っているデバイス上のオーバーフローメニューを非表示になります。私はこの振る舞いをエミュレートしたい。私はシステムのActionBarやActionBarSherlockを使用することはできません。なぜなら、ABSでは実現できない非常に特殊な動作が必要なためです。 – fhucho

+0

OK、ちょうどあなたがABSをフォークし、その上にあなたの特定の動作を実装できると思った。あなたはまだアンドロイドのソースをチェックしましたか? –

+0

いいえ、しかし私はそれを試みます:) ABSをフォークすることは多くの仕事のようです... – fhucho

0
try { 
    ViewConfiguration config = ViewConfiguration.get(this); 
    Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); 


     if (menuKeyField != null) { 
      menuKeyField.setAccessible(true); 
      menuKeyField.setBoolean(config, false); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 

} 

}

+0

このコードをonCreateメソッドの内部で使用します。 –

関連する問題