android - 如何在 AndroidX 中使用 Fragments 实现 ViewPager
问题描述
自从 Google 推出 androidX 以来,我遇到了 viewpager 的问题。我想制作一个可以在片段之间滑动的选项卡布局。getSupportFragmentManager() 现在已弃用并显示错误
ViewPagerAdapter(FragmentManager, int) in ViewPagerAdapter cannot be applied to (FragmentManager)
这是我的适配器:
public class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(@NonNull FragmentManager fm, int behavior) {
super(fm, behavior);
}
@NonNull
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new RecentFragment();
case 1:
return new TracksFragment();
case 2:
return new AlbumFragment();
case 3:
return new GenresFragment();
}
return null;
}
@Override
public int getCount() {
return 4;
}
}
在我的活动中我需要调用它
ViewPager viewPager = findViewById(R.id.view_pager);
viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager());
我找到了解决方案,在构造函数中我有第二个参数,在 viewpager 中我添加了页面位置并且工作正常。
public static int PAGE_POSITION = 4;
ViewPager viewPager = findViewById(R.id.view_pager);
viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(), PAGE_POSITION));
TabLayout tab = findViewById(R.id.tab_layout);
tab.setupWithViewPager(viewPager);
解决方案
改为使用getChildFragmentManager
。
推荐阅读
- javascript - Nuxt 重定向双回问题
- azure - Kubernetes 挑战等待 http-01 传播:拨号 tcp:没有这样的主机
- rust - 如何使用 for 循环构造静态变量并将它们存储在静态数组中?
- python - 反转句子中的特定字符串
- linux - 无法为目标 dso_dataset(libgdcmMSFF.so.2.8 未定义的引用)构建二进制文件并与隐式目录中的库冲突
- azure - 使用服务主体从发布管道运行 Azure CLI 脚本 - invalid_client
- c# - 为什么我的代码中的属性不起作用?
- passwords - 通过 otp 中的 OTP
- c# - 通过递归方法调用构建字符串
- excel - 动态用户表单中的地址文本框