将支持库更新到23.2.0后,TabLayout崩溃

时间:2016-02-28 18:12:35

标签: android xml android-layout android-studio android-support-library

我使用const设计库中的TabLayout,使用函数ViewPager链接它们。在更改选项卡内容后,应用程序在重新创建选项卡的情况下崩溃。崩溃追踪:

setupWithViewPager

更新到支持库23.2.0后发生崩溃,不再复制到v23.1.1。

4 个答案:

答案 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))