首页 > 解决方案 > 标签片段未显示

问题描述

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

图片

我怎样才能让它工作?


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

标签: javaandroid

解决方案


适配器 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);

推荐阅读