Android – 从另一个片段C开始Fragemnt#
我知道这个问题在这里被问得太多但是我已经尝试过每个解决方案从另一个片段打开一个片段,没有人为我工作。
Fragment1.cs
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { base.OnCreate(savedInstanceState); View view = inflater.Inflate(Resource.Layout.my_layout, container, false); return view; add.Click += delegate { Fragment2 fragment2 = new Fragment2(); FragmentTransaction ft = FragmentManager.BeginTransaction(); ft.Replace(Resource.Id.content_frame, fragment2); ft.Commit(); }; }
my_layout
Fragment2.cs
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { base.OnCreate(savedInstanceState); View view = inflater.Inflate(Resource.Layout.fragment_lay, container, false); TextView txt = view.FindViewById(Resource.Id.textView1); Button btn = view.FindViewById
当我运行应用程序,然后单击add
按钮时,没有任何事情发生。 这是为什么 ? 我试图改变Fragment1
的布局,而不是一个
但也没有工作。 请帮我找一个解决方案。
编辑:我在Fragment2
放了一个toast
消息,当我点击Fragment2
的add
按钮时, toast
消息(在fragment2
)显示这意味着fragment2
正在启动,但是它的布局没有显示在屏幕。
你需要一个FrameLayout
来包含你的LinearLayout
:
你的代码应该是:
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Use this to return your custom view for this Fragment var view = inflater.Inflate(Resource.Layout.my_layout, container, false); var ll = view.FindViewById(Resource.Id.ll); var bt = view.FindViewById(Resource.Id.addbtn); bt.Click+= delegate { Fragment2 fragment2 = new Fragment2(); FragmentTransaction ft = FragmentManager.BeginTransaction(); ft.Replace(Resource.Id.content_frame, fragment2); ft.Commit(); ll.Visibility = ViewStates.Gone; }; return view; }
你可以参考这个来看看你的fragment2
就在它上面的原因。 我用ll.Visibility = ViewStates.Gone;
避免它。
在 return
view
之前,您必须将Click
事件附加到按钮,我认为您要在addbtn
上附加此事件,因此您必须先创建变量add
才能附加此事件
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { base.OnCreate(savedInstanceState); View view = inflater.Inflate(Resource.Layout.my_layout, container, false); Button add = view.FindViewById
您可以改为使用事件:
上述就是C#学习教程:Android – 从另一个片段C开始Fragemnt#分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { base.OnCreate(savedInstanceState); View view = inflater.Inflate(Resource.Layout.my_layout, container, false); Button add = view.FindViewById
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1005647.html