public abstract class BaseFragment extends Fragment {
private View rootView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
rootView = inflater.inflate(initlayout(),container,false);
inittablayout(rootView,getLayoutInflater());
initviewpager(rootView);
return rootView;
}
protected void initviewpager(View rootView) {
}
protected void inittablayout(View rootView,LayoutInflater inflater) {
}
protected abstract int initlayout();
----------------------------------------------------------------------------------------------------------------------------
public class HomePageFragment extends BaseFragment {
private ViewPager viewPager_homefragment;
private TabLayout tabLayout_homefragemnt;
private TextView tabtitle_homepagefragment;
private String tabtitle_homefragments[] = {"推荐", "零食", "男装", "女装", "母婴", "数码家电", "美妆护肤"};
protected int initlayout() {
return R.layout.fragment_homepage;
}
protected void initviewpager(View rootView) {
viewPager_homefragment = rootView.findViewById(R.id.viewpager_homefragment);
HomefragmentAdapter homefragmentAdapter = new HomefragmentAdapter(getChildFragmentManager(), tabtitle_homefragments);
viewPager_homefragment.setAdapter(homefragmentAdapter);
}
protected void inittablayout(View rootView,LayoutInflater inflater) {
tabLayout_homefragemnt = rootView.findViewById(R.id.tablayout_homefragment);
//实现自定义tab
for (int i = 0; i < 7; i++) {
//实例化tab
TabLayout.Tab tab = tabLayout_homefragemnt.newTab();
View view = inflater.inflate(R.layout.tabview_homepagefragment, null);
//为tab设置自定义视图
tab.setCustomView(view);
tabtitle_homepagefragment = view.findViewById(R.id.tabtitle_homepagefragment);
//添加标题
tabtitle_homepagefragment.setText(tabtitle_homefragments[i]);
//添加tab
tabLayout_homefragemnt.addTab(tab);
// 设置第一个tab为大号字体
if (tab.getPosition() == 0) {
tabtitle_homepagefragment = tab.getCustomView().findViewById(R.id.tabtitle_homepagefragment);
tabtitle_homepagefragment.setTextSize(15);
}
}
viewPager_homefragment.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout_homefragemnt));
tabLayout_homefragemnt.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
//viewpager跳转到指定页面
viewPager_homefragment.setCurrentItem(tab.getPosition());
tabtitle_homepagefragment = tab.getCustomView().findViewById(R.id.tabtitle_homepagefragment);
tabtitle_homepagefragment.setTextSize(15);
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
tabtitle_homepagefragment.setTextSize(13);
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
logcat报错:
ava.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.addOnPageChangeListener(android.support.v4.view.ViewPager$OnPageChangeListener)' on a null object reference
您的每一个用心回答,都会让这个世界变得更美好一些!