Zaw*_*tet 3 android android-fragments
我的应用程序有一个包含很多片段的活动.我想在某些片段中禁用后退按钮.我尝试使用以下代码.但它不起作用.
在主要活动中:
@Override
public void onBackPressed() {
super.onBackPressed();
OrderFragment.onBackPress();
}
Run Code Online (Sandbox Code Playgroud)
在片段中,
public static void onBackPressed()
{
Log.d(TAG,"It listen");
}
Run Code Online (Sandbox Code Playgroud)
我有日志消息但是,如何禁用片段中的后退按钮.
小智 7
您应该保留对要禁用/处理主活动的新闻事件的片段的引用:
class MainActivity{
OrderFragment mOrderFragment;
@Override
public void onBackPressed() {
if(mOrderFragment.isVisible())
mOrderFragment.onBackPressed();
else
super.onBackPressed();
}
}
Run Code Online (Sandbox Code Playgroud)
在OrderFragment中:
public void onBackPressed() {
//handle back press event
}
Run Code Online (Sandbox Code Playgroud)
在您的oncreateView()方法中,您需要编写此代码,并且在KEYCODE_BACk中return应该为true,然后它将停止特定片段的后退按钮选项
View v = inflater.inflate(R.layout.xyz, container, false);
//Back pressed Logic for fragment
v.setFocusableInTouchMode(true);
v.requestFocus();
v.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12950 次 |
最近记录: |