背压不在片段内工作

时间:2016-01-16 06:11:40

标签: android android-fragments back-button

问题:如何启用我的后退按钮以返回我之前的托管活动/片段?

情况:我的启动器活动托管片段,同时还包含FAB。单击FAB将启动另一个托管另一个片段的活动。当显示后一个片段时,searchView会自动扩展并关注它。向后按可关闭键盘。但是,再次按下并不会让我回到我的启动器活动中。

我尝试的事情:

在我的托管活动中

fm.beginTransaction().add(R.id.fragment_container,   fragment).addToBackStack(null).commit();

@Override
public void onBackPressed() {
    int count = getFragmentManager().getBackStackEntryCount();

    if (count == 0) {
        super.onBackPressed();
    //additional code
    } else {
        getFragmentManager().popBackStack();
    }
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_DOWN) {
        return true;
    } 
    return false;
}

片段

frag.getView().setFocusableInTouchMode(true);
frag.getView().setOnKeyListener( new OnKeyListener(){
    @Override
    public boolean onKey( View v, int keyCode, KeyEvent event ){
       if( keyCode == KeyEvent.KEYCODE_BACK ){
            return true;
       }
       return false;
    }
} );

此外,我注意到按下后退按钮并不会调用onBackPressed或onKeyDown。

0 个答案:

没有答案