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)
请帮帮我,如何做到这一点。
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"
答案 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
替换片段3getFragmentManager()的BeginTransaction()代替(R.id.cntainer,fragment4, “fragment4”)提交();
<强>更新强> 因为你的碎片是静态的,你可以这样做
Fragment fragment=getFragmentManager().findFragmentById(R.id.detail_Fragmentxml_mainAct_ID);
getFragmentManager().beginTransaction().hide(fragment).commit();
点击
将其放入您的手中