Android片段无法隐藏

时间:2015-02-11 21:47:03

标签: android android-layout android-fragments android-fragmentactivity

我有一个应用程序,我在其中交换两个片段。片段在LinearLayout中。在线性布局下方,我有图标(ImageViews),点击时隐藏或显示相应的片段。当应用程序首次加载时,一切都很好。退出我的应用程序并使用另一个应用程序然后返回到我的应用程序,当我单击图标(ImageView)时片段不隐藏/显示。这是怎么回事?它与活动生命周期有关吗?

xml_layout:

       <LinearLayout 
                android:id="@+id/Linearlayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                >


            </LinearLayout>









   onCreate()
    {
          ft = this.getSupportFragmentManager()
                    .beginTransaction();
          frag1= new Frag1();
          frag2= new  Frag2();
          ft.add(R.id.linearlayout,frag1);
          ft.add(R.id.linearlayout, frag2);
          ft.hide(frag1).show(frag2);
          ft.commit();



           icon1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {


                ftt =  MainActivity.this.getSupportFragmentManager()
                        .beginTransaction();
                ftt.hide(frag2).show(frag1);

                ftt.commit();
            }
        });


     }

2 个答案:

答案 0 :(得分:0)

我认为你的问题就在这一行:

ft.hide(frag2).show(frag2);

您想要隐藏frag1并显示frag2

ft.hide(frag1).show(frag2);

答案 1 :(得分:-1)

是的,答案与活动周期有关。您需要覆盖onCreateView并将onClickListener放在其中。只有在首次创建活动时才会调用onCreate。之后立即调用OnCreateView,但是当您从另一个活动返回后将活动恢复到前面时也会调用它。