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)
请帮帮我,如何做到这一点 .
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 回答
好的关闭按钮单击你必须这样做
. 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 因为你的片段是静态的,你可以这样做
点击即可将此信息发送给您
如果按钮位于主活动内,则直接使用显示片段
相反,如果按钮位于片段1或4中,则必须与活动进行通信:https://developer.android.com/training/basics/fragments/communicating.html
如果您的关闭按钮位于片段3内,则同样如此 .