0

私はDrawerLayout自分のアプリケーションで使用しています。最初に戻るボタンを押すと、閉じDrawerLayoutて、戻るボタンをもう一度クリックする必要があり、前の画面にリダイレクトされます。

DrawerLayoutしかし、この戻るボタンを閉じるのは避けたいです。誰でもこれを防ぐ方法を知ることができますか?

私がこれにこだわっている方法を教えてください。

前もって感謝します。

4

5 に答える 5

5

DrawerLayoutonKeyDownデフォルトをインターセプトするonKeyUpため、拡張された新しいクラスを作成しDrawerLayout 、このメソッドをオーバーライドするだけです

このようなもの:

import android.content.Context;
import android.support.v4.widget.DrawerLayout;
import android.util.AttributeSet;
import android.view.KeyEvent;

public class MyDrawerLayout extends DrawerLayout {

    public MyDrawerLayout(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public MyDrawerLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyDrawerLayout(Context context) {
        super(context);
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            return false;
        }
        return super.onKeyUp(keyCode, event);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            return false;
        }
        return super.onKeyDown(keyCode, event);
    }   
}
于 2013-11-28T12:56:20.817 に答える
4

ドロワーをフォーカス不可にするだけで、戻るボタンをインターセプトしなくなります。

mDrawerLayout.setFocusable(false);
于 2014-05-12T20:11:18.367 に答える
0

スライド アクティビティでこれを試してみてください。バック キーを簡単に処理できます: https://github.com/jfeinstein10/SlidingMenu

于 2013-10-21T09:53:10.053 に答える
0

使用する

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        super.onBackPressed();
    }

または単に keydown イベントで super.onBackPressed() を呼び出します。

于 2015-01-20T20:18:45.280 に答える
-2

戻るボタンのクリックで finish() 関数を使用する

于 2013-10-21T10:14:43.837 に答える