Android 背面新闻片段显示空白屏幕

Android 背面新闻片段显示空白屏幕,android,android-intent,android-fragments,Android,Android Intent,Android Fragments,我在我的应用程序中使用了片段,所以在主页上我有一个5项的网格视图,我再次打开了一个新片段 因此,所发生的事情是,当它关闭应用程序时,它会显示一个空白屏幕 请告诉我这件事我做错了什么 MyCode gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View v,

我在我的应用程序中使用了片段,所以在主页上我有一个5项的网格视图,我再次打开了一个新片段

因此,所发生的事情是,当它关闭应用程序时,它会显示一个空白屏幕

请告诉我这件事我做错了什么

MyCode

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);