我使用const
设计库中的TabLayout
,使用函数ViewPager
链接它们。在更改选项卡内容后,应用程序在重新创建选项卡的情况下崩溃。崩溃追踪:
setupWithViewPager
更新到支持库23.2.0后发生崩溃,不再复制到v23.1.1。
答案 0 :(得分:7)
刚发现这是支持库v23.2.0中的内部错误,注册地址为:https://code.google.com/p/android/issues/detail?id=201827
答案 1 :(得分:2)
这是在谷歌https://code.google.com/p/android/issues/detail?id=201827
上报告的错误但在Android支持库发布后,revision 23.2.1(2016年3月)现在已修复此问题。
只需将支持库更新为Android Support Library to 23.2.1
答案 2 :(得分:1)
我遇到了同样的问题,然后我发现较新的Tablayout使用池来缓存Tab。
在23.1.1
public Tab newTab() {
return new Tab(this);
}
并在23.2.0
public Tab newTab() {
Tab tab = sTabPool.acquire();
if (tab == null) {
tab = new Tab(this);
}
tab.mView = createTabView(tab);
return tab;
}
所以如果你使用newTab()创建一个Tab,并且由于某种原因你没有将它添加到TableLayout。下次使用TabLayout输入另一个活动时,就会发生这种情况。
答案 3 :(得分:0)
我仍然可以在支持lib版本中看到这个问题:25.3.1。因此,要避免崩溃,请删除AllTabs()并再次为选项卡创建一个新实例并添加到Tablayout。
gauge_tab.removeAllTabs()
gauge_tab.addTab(gauge_tab.newTab().setText(R.string.flash_gauge_04))
gauge_tab.addTab(gauge_tab.newTab().setText(R.string.flash_gauge_06))
gauge_tab.addTab(gauge_tab.newTab().setText(R.string.flash_gauge_08))