从appcompat库的23.1.0升级到23.1.1之后,在asetCustomView()上调用TabLayout.Tab将抛出aNullPointerException

TabLayout.Tab tab = mTabLayout.newTab();
tab.setCustomView(R.layout.tab_photo_indicator);
mTabLayout.addTab(tab);

在第二行抛出NullPointerException。异常指向appcompat库中的TabLayout.java:1019,下面的inflater =行:
public Tab setCustomView(int resId) {
    final TabView tabView = mParent.getTabView(mPosition);
    final LayoutInflater inflater = LayoutInflater.from(tabView.getContext());
    return setCustomView(inflater.inflate(resId, tabView, false);
}

降级到23.1.0使它再次工作,但23.1.1修复了我在该版本中遇到的另一个问题。
我所做的有什么问题吗?或者这是支持库中的问题吗?

最佳答案

在设置自定义视图之前将选项卡添加到布局可避免崩溃。如:

TabLayout.Tab tab = mTabLayout.newTab();
mTabLayout.addTab(tab);
tab.setCustomView(R.layout.tab_photo_indicator);

不幸的是,布局没有像以前那样显示,但我可以修改布局以适应。
此问题还排除了将选项卡创建为一行并添加为一行的可能性。如:
mTabLayout.addTab(mTabLayout.newTab().setCustomView(r.layout.tab_photo_indicator));

10-04 13:04