4

Nexus の画面は次のように表示されます (ここでは、右上隅の 3 つのドットを押してメニューをドロップダウンします)。

ここに画像の説明を入力

画面の右上隅にメニューが表示されます。電話は次のようにメニューを表示します(これは、電話のメニューボタンを押したときにのみ発生します):

ここに画像の説明を入力

画面の右上隅にメニューを表示できるタブレットと同じように、電話でもメニューの動作をしたいと思います。ここでの私の質問は、メニューの膨張動作をオーバーライドする方法があるということです。電話でもメニューを画面の右上から表示する必要があります。

4

1 に答える 1

5

少し複雑ですが、一般的な考え方は次のとおりです。

public void showPopup(View v) {
PopupMenu popup = new PopupMenu(this, v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.layout.menu, popup.getMenu());
popup.show();

}

このメソッドvには、メニューを表示するためのビューがあります。

Overrideユーザーがメニューボタンを押すとメニューが表示されるように、メニューボタンを押す必要があります。以下をせよ

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ( keyCode == KeyEvent.KEYCODE_MENU ) {
        //Put the code for an action menu from the top here
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

そして、それ以外は通常のメニューと同じです(私は思います)

于 2012-12-12T22:25:00.297 に答える