我的活动中有一些碎片
[1], [2], [3], [4], [5], [6]
如果当前活动片段为[2],则在返回按钮上按I,我必须从[2]返回到[1],否则不执行任何操作。
最佳做法是什么?
编辑:应用程序不得从[3] ... [6]返回到[2]
在片段之间转换时,请addToBackStack()
作为的一部分进行调用FragmentTransaction
:
FragmentTransaction tx = fragmentManager.beginTransation();
tx.replace( R.id.fragment, new MyFragment() ).addToBackStack( "tag" ).commit();
如果您需要更详细的控制(例如,当某些片段可见时,您想取消返回键),则可以OnKeyListener
在片段的父视图上设置一个:
//You need to add the following line for this solution to work; thanks skayred
fragment.getView().setFocusableInTouchMode(true);
fragment.getView().requestFocus();
fragment.getView().setOnKeyListener( new OnKeyListener()
{
@Override
public boolean onKey( View v, int keyCode, KeyEvent event )
{
if( keyCode == KeyEvent.KEYCODE_BACK )
{
return true;
}
return false;
}
} );
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句