XTabLayout icon indicating copy to clipboard operation
XTabLayout copied to clipboard

hello,xtablayout fragment 出错

Open molele2 opened this issue 5 years ago • 3 comments

public class HomeFragment extends Fragment {

private View viewContent;
private XTabLayout tabLayout;
private ViewPager viewPager;

private BadgeView redDotBadgeView;
private BadgeView redNumberBadgeView;

private String[] strArray = new String[]{"关注", "推荐", "视频", "直播", "图片", "段子", "精华", "热门"};

private List<String> stringList = new ArrayList<>();
private List<Fragment> fragmentList = new ArrayList<>();

// private ViewPager viewPager; // private XTabLayout topTabLayout; // private BadgeView redDotBadgeView; // private BadgeView redNumberBadgeView; // // private String[] strArray = new String[]{"关注", "推荐", "视频", "直播", "图片", "段子", "精华", "热门"}; // // private List<String> stringList = new ArrayList<>(); // private List<Fragment> fragmentList = new ArrayList<>(); // public static HomeFragment instance() { HomeFragment instance = new HomeFragment(); return instance; }

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    viewContent = inflater.inflate(R.layout.fragment_home, container, false);
    initData();
    initViews();
    return viewContent;
}

private void initViews() {
    tabLayout = viewContent.findViewById(R.id.tabsFive);
    viewPager = viewContent.findViewById(R.id.viewPager);

    initData();
    IndexPagerAdapter indexPagerAdapter = new IndexPagerAdapter(getFragmentManager(),stringList,fragmentList);
    viewPager.setAdapter(indexPagerAdapter);

    viewPager.setAdapter(indexPagerAdapter);
    tabLayout.setupWithViewPager(viewPager);
    tabLayout.setSelectedTabIndicatorHeight(0);

}

private void initData() {
    stringList.addAll(Arrays.asList(strArray));
    fragmentList.add(new HomeFragment());
    fragmentList.add(new EmptyFragment());
    fragmentList.add(new EmptyFragment());
    fragmentList.add(new EmptyFragment());
    fragmentList.add(new EmptyFragment());
    fragmentList.add(new EmptyFragment());
    fragmentList.add(new EmptyFragment());
    fragmentList.add(new EmptyFragment());
}

class IndexPagerAdapter extends FragmentPagerAdapter {
    private List<String> titleList;

    public IndexPagerAdapter(FragmentManager fm, List<String> titleList, List<Fragment> fragmentList) {
        super(fm);
        this.titleList = titleList;
    }

    @Override
    public Fragment getItem(int position) {
        return fragmentList.get(position);
    }

    @Override
    public int getCount() {
        return titleList.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return titleList.get(position);
    }
}

public static int dip2px(Context context, float dpValue) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) (dpValue * scale + 0.5f);
}

}

NullPointerException: Attempt to invoke virtual method 'void android.support.v4.app.Fragment.setMenuVisibility(boolean)' on a null object reference

molele2 avatar May 28 '19 08:05 molele2

另 如何在点击tab是设置字体的大小及颜色

molele2 avatar May 28 '19 08:05 molele2

fragmentList.add(new HomeFragment()); fragmentList.add(new EmptyFragment()); fragmentList.add(new EmptyFragment()); fragmentList.add(new EmptyFragment()); fragmentList.add(new EmptyFragment()); fragmentList.add(new EmptyFragment()); fragmentList.add(new EmptyFragment()); fragmentList.add(new EmptyFragment());

我这边按照你提供的代码试了下,并没有出现这个问题,你这个异常是因为ViewPager的adapter中getItem方法返回的Fragment为空导致,你可以再check下这块逻辑看看

JasonGaoH avatar Jun 01 '19 00:06 JasonGaoH

另 如何在点击tab是设置字体的大小及颜色

现在这个tab里面暂时还没有提供设置类似这样的方法,不过我平时一般是这样弄的: `

 for (i in 0 until tabLayout.tabCount) {
            val tab = tabLayout.getTabAt(i) ?: return
            val textView = tab.view as TextView
             if (tab.isSelected) {
                textView.typeface = Typeface.DEFAULT_BOLD
                //变色
            } else {
                textView.typeface= Typeface.DEFAULT
                //变色
            }
        }

JasonGaoH avatar Jun 01 '19 00:06 JasonGaoH