java - 标签片段未显示
问题描述
我正在尝试在片段中添加标签(用于底部导航栏)。但是,当我运行该应用程序时,这些选项卡根本不显示。下面是结果的图像:
Home.java -> 应该显示 2 个选项卡的片段,其中包括 BlankFragment.java
CategoryAdapter.java -> 设置选项卡名称和片段以显示在每个选项卡中
BlankFragment.java -> 每个选项卡上显示的空片段
我怎样才能让它工作?
Home.java(应该显示选项卡的片段)
public class Home extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
ViewPager viewPager = rootView.findViewById(R.id.viewpager);
CategoryAdapter adapter = new CategoryAdapter(getChildFragmentManager());
viewPager.setAdapter(adapter);
TabLayout tabLayout = rootView.findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
return rootView;
}
public Home() {}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
}
@Override
public void onDetach() {
super.onDetach();
}
CategoryAdapter.java
public class CategoryAdapter extends FragmentPagerAdapter {
public CategoryAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
if (position == 0) {
return new BlankFragment();
} else {
return new BlankFragment();
}
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
if (position == 0) {
return "Devices";
} else {
return "Numbers";
}
}
}
空白片段.java
public class BlankFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_blank, container, false);
return rootView;
}
public BlankFragment() {}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
}
@Override
public void onDetach() {
super.onDetach();
}
}
解决方案
适配器 addFragment 丢失
ViewPager viewPager = rootView.findViewById(R.id.viewpager);
CategoryAdapter adapter = new CategoryAdapter(getChildFragmentManager());
BlankFragment frag= new BlankFragment ();
adapter.addFragment(frag);
viewPager.setAdapter(adapter);
TabLayout tabLayout = rootView.findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
推荐阅读
- meshlab - 导入网格:极坐标数组的格式
- node.js - 未经授权的用户在被 401 错误拒绝后将多部分/数据发送到服务器事件
- android - 如何使用家庭图书馆与 android 中的家庭成员共享订阅?
- python - 如何在 mininet 上运行 python 文件
- php - 如何在 Cartalyst/Stripe Laravel 中捕获异常并重定向到我的 on 消息?我想在 catch 块中捕获错误
- react-native - 在反应导航中管理多个导航器(堆栈导航器和底部标签导航器)
- javascript - 如何获取特定复选框的位置编号
- python - 使用 Python scrapy 时错误的图像 src url
- excel - 在word中使用vba将文本添加到excel单元格
- blazor - 在 Blazor 中滚动时延迟加载下拉项目