Android 背面新闻片段显示空白屏幕
我在我的应用程序中使用了片段,所以在主页上我有一个5项的网格视图,我再次打开了一个新片段 因此,所发生的事情是,当它关闭应用程序时,它会显示一个空白屏幕 请告诉我这件事我做错了什么 MyCodeAndroid 背面新闻片段显示空白屏幕,android,android-intent,android-fragments,Android,Android Intent,Android Fragments,我在我的应用程序中使用了片段,所以在主页上我有一个5项的网格视图,我再次打开了一个新片段 因此,所发生的事情是,当它关闭应用程序时,它会显示一个空白屏幕 请告诉我这件事我做错了什么 MyCode gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View v,
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int arg2,
long arg3) {
if (DASHBOARD_LINKS[arg2].equals("A")) {
fragTran.replace(R.id.content_frame,
firstFrag);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
}
if (DASHBOARD_LINKS[arg2].equals("B")) {
fragTran.replace(R.id.content_frame, secondFrag);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
}
if (DASHBOARD_LINKS[arg2].equals("C")) {
fragTran.replace(R.id.content_frame, thirdFarg);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
}
}
});
gridView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0,视图v,内部arg2,
长arg3){
if(仪表板链接[arg2].equals(“A”)){
更换框架(R.id.content_框架,
第一帧);
fragTran.setTransition(FragmentTransaction.transition\u FRAGMENT\u OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
}
if(仪表板链接[arg2].equals(“B”)){
更换框架(R.id.content_框架,第二框架);
fragTran.setTransition(FragmentTransaction.transition\u FRAGMENT\u OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
}
if(仪表板链接[arg2].equals(“C”)){
更换框架(R.id.content_框架,第三个参数);
fragTran.setTransition(FragmentTransaction.transition\u FRAGMENT\u OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
}
}
});
请帮助我,这正在发生我假设您想要处理后退按钮按下。您可以执行以下操作:
fragTran.replace(R.id.content_frame, secondFrag);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack("TAG");
fragTran.commit();
在片段之间转换之前,调用addToBackStack()
,如下所示:
fragTran.replace(R.id.content_frame, secondFrag);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack("TAG");
fragTran.commit();
有关详细信息,请参阅本文我给您的建议是在片段调用中让addToBackStack(null)
但是去掉这条线
addToBackStack(空)
从主页以后,代码>后退< /代码>您得到了空白屏幕,希望这会为您提供。
@Override
public void onBackPressed() {
int fragments = getSupportFragmentManager().getBackStackEntryCount();
if (fragments == 1) {
finish();
} else {
if (getFragmentManager().getBackStackEntryCount() > 1) {
getFragmentManager().popBackStack();
} else {
super.onBackPressed();
}
}
}
显示空白溶液的片段
确保不使用addToBackStack
()方法添加第一个碱基片段。因为它负责向后导航。我们不想回到第一页。所以不要把它添加到backbackback中
从片段A移动到片段B时如果您已调用片段事务。添加
,然后从B返回到A时。onViewCreated
或onResume
方法将不会被调用,因为您已将片段添加到该方法中。因此,为了在返回片段A时点击onResume
或onViewCreated
,您应该调用fragmentTransaction.replace
addToBackStack()
如果将片段从一个活动导航到第二个活动的片段,就会发生这种情况。在替换片段时,您正在将它们添加到backstack中,因此不要将各个活动的第一个片段添加到backstack中。更新OncreateView()方法:
希望这有帮助 这是因为您只在fragTran.addToBackStack(null)中添加null
Method那么我要做什么呢请你给我一些建议我在这方面不是很清楚,但是fragTran.addToBackStack(“Tag”)代码>这对我来说很有效。只需一个字符串
来识别片段
。我再一次对它不完全清楚。请阅读文档以获得清晰的想法。看到同样的问题它显示一个空白屏幕,然后它将关闭application@PoojaDubey:我想你的代码中还有其他问题,因为上面的方法有效。你可以在这里检查样本,尽管这是首选答案。我不明白你想说什么谢谢,我知道这个问题已经问了一年了。但是删除第一次转换的addToBackStack(null)
修复了我的问题。@开发者,你的答案太令人困惑了。我也想使用OnBackbackChangedListener,但是如果我删除了addToBackStack,那么OnBackBackbackChangedListener永远不会工作。这不是正确的答案。请点击这个链接。解决方案令人困惑。忘记添加。声明视图视图;在顶端
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (view != null) {
if (view.getParent() != null) {
((ViewGroup)view.getParent()).removeView(view);
}
return view;
}
View v=inflater.inflate(R.layout.tests, container, false);