首页 文章

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

提问于
浏览
0

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

片段1,Fragment2,Fragment3,Fragment4 .

My Need:

EDIT 1:

2.Fragement1,Fragement4将始终显示 (Frag1||Frag4)-Initial Stage ,如果Iam从 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中

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:baselineAligned="false"
        android:orientation="horizontal"
        >
        <fragment
            android:id="@+id/list_Fragment1xml_mainAct_ID"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".08"
            class="com.knowledgeflex.lpm_qrt.Menu_Fragment1" >
        </fragment>

         <fragment
             android:id="@+id/detail_Fragmentxml_mainAct_ID"
             android:layout_width="0dp"
             android:layout_height="match_parent"
             android:layout_weight=".28"
             class="com.knowledgeflex.lpm_qrt.Option_Fragment3">
         </fragment>


        <fragment
            android:id="@+id/map_Fragmentxml_mainAct_ID"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".92"
            class="com.knowledgeflex.lpm_qrt.Map_Fragment4">
        </fragment>
    </LinearLayout>

Fragment1.class

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

}

fragment2.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;
        }
    }

fragment3.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;
    }
}

Fragment4.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;
        }
    }

2 回答

  • 2

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

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

    这意味着你的当前片段,如果你的按钮在片段3中,你想要隐藏片段3,如果你想完全删除它然后使用删除而不是隐藏,如果你想用4或4替换片段3或3更容易

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

    用4替换片段3

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

    update 因为你的片段是静态的,你可以这样做

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

    点击即可将此信息发送给您

  • 1

    如果按钮位于主活动内,则直接使用显示片段

    getFragmentManager().beginTransaction().add(yourFragment, "yourTAG").commit();
    

    相反,如果按钮位于片段1或4中,则必须与活动进行通信:https://developer.android.com/training/basics/fragments/communicating.html

    如果您的关闭按钮位于片段3内,则同样如此 .

相关问题