在一个平板电脑活动中安装多个片段,然后根据按钮隐藏和显示从其他片段中单击

时间:2016-06-26 11:36:47

标签: android android-fragments

1.在我的平板电脑中,我有一个活动,在该活动中 我有4个片段

片段1,Fragment2,Fragment3,Fragment4。

我的需要:

编辑1:

2.Fragement1,Fragement4将始终显示(Frag1 || Frag4) - 初始阶段, 如果我点击 Fragement1 - >> 上的按钮将打开 Fragment2 (所以它会显示如下(Frag1 || Frag2 || Frag4 )在活动屏幕中。)

3.如果Iam从 Fragement2 - >> 点击按钮将打开 Fragment3,,然后 Fragemnt4 将被隐藏(因此它会在活动屏幕中显示如下( Frag1 || Frag2 || Frag3 )。

4.如果我们点击关闭图标从 Fragment3 ---> ,它将显示(Fragment1 || Fragment2 || Fragment4)应该显示。隐藏的 frag4 替换为 frag3

5.最后,如果我点击关闭图标从 Fragment2 ---> Frag2 将被删除,它将显示活动,如开始 (Frag1 || Frag4)

请帮帮我,如何做到这一点。

Link i referred

activity_main.xml中

public class Fragment1 extends Fragment implements OnClickListener 
{
    //Button android_btn, ios_btn, windows_btn;

    ImageView ALertIamge;



    private OnItemSelectedListener listener;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState)
    {
        View view = inflater.inflate(R.layout.menu_fragment1, container, false);


        // Initialize View
        ALertIamge=(ImageView)view.findViewById(R.id.AlertImagexml);
       // ALertIamge.setOnClickListener(this);
        ALertIamge.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v) {
               // Here I want Hide Show to Second Fragment
            }
        });
        return view;
    }

}

Fragment1.class

 public class Fragment2 extends Fragment
    {



        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState)
        {
            View view = inflater.inflate(R.layout.link_fragment2, container, false);
            return view;
        }
    }

fragment2.class

public class Fragment3 extends Fragment
{



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState)
    {
        View view = inflater.inflate(R.layout.options_fragment3, container, false);
        return view;
    }
}

fragment3.class

public class Fragment4 extends Fragment
    {



        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState)
        {
            View view = inflater.inflate(R.layout.options_fragment4, container, false);
            return view;
        }
    }

Fragment4.class

"multiple" => "multiple"

2 个答案:

答案 0 :(得分:2)

如果按钮位于主活动内,则使用

直接显示片段
getFragmentManager().beginTransaction().add(yourFragment, "yourTAG").commit();

相反,如果按钮位于片段1或4中,那么您必须与活动进行通信: http://quirksmode.org/css/css2/columns.html

如果您的关闭按钮位于片段3内,则相同。

答案 1 :(得分:1)

好的关闭按钮点击你必须这样做

getFragmentManager()的BeginTransaction()隐藏(本).commit();

这意味着当你的按钮在片段3中并且你想要隐藏片段3时你的当前片段 如果你想完全删除它,那么使用remove而不是hide 如果你想用4或4替换片段3,或者用简单的3替换

用片段3替换任何片段getFragmentManager().beginTransaction().replace(R.id.cntainer,fragment3,"fragment3").commit();

用4

替换片段3

getFragmentManager()的BeginTransaction()代替(R.id.cntainer,fragment4, “fragment4”)提交();

<强>更新 因为你的碎片是静态的,你可以这样做

Fragment fragment=getFragmentManager().findFragmentById(R.id.detail_Fragmentxml_mainAct_ID);
getFragmentManager().beginTransaction().hide(fragment).commit();

点击

将其放入您的手中