标签片段未显示



我正在尝试在片段中添加选项卡(对于底部导航栏(。但是,当我运行该应用程序时,选项卡根本不会显示。以下是结果的图像:

图像

  • home.java->应显示2个选项卡的片段,其中包括blankfragment.java

  • categoryAdapater.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();
}

类别Adapater.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";
        }
    }
}

blankfragment.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);
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);
setupViewPager(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);
 }
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new 
ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new OneFragment(), "Devices");
adapter.addFragment(new TwoFragment(), "Numbers");
viewPager.setAdapter(adapter);
}
@Override
public void onDetach() {
super.onDetach();
}
}

使用此代码更新家庭课程

最新更新