Xamarin C#使用AndroidX时如何获取AndroidX版FragmentManager而非旧版
Xamarin Android 使用AndroidX版本FragmentManager解决方案
核心修改步骤
- 首先确认你的Activity继承自
AndroidX.AppCompat.App.AppCompatActivity,而非已废弃的Android.App.Activity,这是使用AndroidX系列API的基础前提 - 移除代码顶部的
using Android.App;引用,改为引入AndroidX.Fragment.App命名空间 - 将原来调用
FragmentManager的逻辑替换为调用SupportFragmentManager属性,该属性就是AndroidX提供的正式版本FragmentManager
代码示例
using AndroidX.AppCompat.App; using Android.OS; public class MainActivity : AppCompatActivity { protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.activity_main); // 调用AndroidX版本FragmentManager开启事务 var fragmentTransaction = this.SupportFragmentManager.BeginTransaction(); // 补充你的Fragment操作逻辑,示例如下 // fragmentTransaction.Replace(Resource.Id.fragment_container, new CustomFragment()); // fragmentTransaction.Commit(); } }
额外注意事项
- 你自定义的Fragment也需要继承
AndroidX.Fragment.App.Fragment,不要使用旧版Android.App.Fragment,避免出现类型不匹配报错 - 项目中所有用到旧版FragmentManager的位置,统一替换为
SupportFragmentManager即可,不需要额外配置
内容的提问来源于stack exchange,提问作者karhukoti
相关产品推荐
相关产品推荐

