Java 动态删除选项卡时,支持库ViewPager/TableLayout上的选项卡指示器不正确
好的,我一直在使用新的Java 动态删除选项卡时,支持库ViewPager/TableLayout上的选项卡指示器不正确,java,android,android-support-library,viewpagerindicator,android-tablayout,Java,Android,Android Support Library,Viewpagerindicator,Android Tablayout,好的,我一直在使用新的支持库的查看页面和表格布局,在我的应用程序中,我根据用户是否打开/关闭了搜索视图动态添加和删除选项卡 我的实施工作;但是,选项卡指示器似乎存在视觉缺陷。显示正确的选项卡片段,但选项卡指示器位于错误的选项卡下 我做了很多测试,看看这是否是我的问题,但后来发现这是支持库的一个bug。我发送了一个,但报告的状态被标记为userError。 所以谷歌的开发者给了我一个想法。我试着说修复;然而,它并没有解决任何问题。在过去的几个小时里,我做了一些更深入的测试,他说正确的行为取决于是否
支持库
的查看页面
和表格布局
,在我的应用程序中,我根据用户是否打开/关闭了搜索视图
动态添加和删除选项卡
我的实施工作;但是,选项卡指示器似乎存在视觉缺陷。显示正确的选项卡片段,但选项卡指示器位于错误的选项卡下强>
我做了很多测试,看看这是否是我的问题,但后来发现这是支持库的一个bug。我发送了一个,但报告的状态被标记为userError。
所以谷歌的开发者给了我一个想法。我试着说修复;然而,它并没有解决任何问题。在过去的几个小时里,我做了一些更深入的测试,他说正确的行为取决于是否调用了ViewPager
的OnPageChangedListener
我在我的bug报告中添加了额外的信息,但由于它被标记为userError,我不知道开发人员是否会响应。所以我现在在这里
屏幕录制
{注意:单击此链接将自动下载屏幕录制[.mp4]}。注意选项卡指示器。它应该转到上一个显示的选项卡,但不会
问题
1.指示灯正确,显示的碎片错误
StackTrace:
首先转到第二个选项卡,单击SearchView,然后关闭SearchView
On MenuItemCompat.OnActionExpandListener::onMenuItemActionCollapse(...)
clearAllTabs() [A, B, C, Search] -> []
addTabs(displayedTabs) [] -> [A, B, C]
ViewPager.OnPageChangeListener::OnPageSelected(2)
ViewPager.OnPageChangeListener::OnPageScrolled(2, 0.0, 0)
viewPager.setCurrentItem(1, true)
ViewPager.OnPageChangeListener::onPageScrollStateChanged(2)
ViewPager.OnPageChangeListener::onPageSelected(1)
tabLayout.removeAllTabs()
tabLayout.setupWithViewPager(viewPager);
ViewPager.OnPageChangeListener::onPageSelected(0) [NOTE: this statement does not fire if Tab A was displayed before opening SearchView]
return true
ViewPager.OnPageChangeListener::onPageScrolled(0, 0.0, 0)
// UI display is updated (Tab 1 fragment is displayed, but tab indicator is on 2nd Tab)
ViewPager.OnPageChangeListener::onPageScrollStateChanged(0)
On MenuItemCompat.OnActionExpandListener::onMenuItemActionCollapse(...)
clearAllTabs() [A, B, C, Search] -> []
addTabs(displayedTabs) [] -> [A, B, C]
ViewPager.OnPageChangeListener::OnPageSelected(2)
ViewPager.OnPageChangeListener::OnPageScrolled(2, 0.0, 0)
tabLayout.removeAllTabs()
tabLayout.setupWithViewPager(viewPager);
ViewPager.OnPageChangeListener::onPageScrollStateChanged(2)
ViewPager.OnPageChangeListener::onPageSelected(0)
viewPager.setCurrentItem(1, true)
ViewPager.OnPageChangeListener::onPageSelected(1)
return true
ViewPager.OnPageChangeListener::onPageScrolled(1, 0.0, 0)
// UI display is updated (Tab 2 fragment is displayed, but tab indicator is on 3rd Tab)
ViewPager.OnPageChangeListener::onPageScrollStateChanged(0)
2.正确显示的片段,错误的选项卡指示器
StackTrace:
首先转到第二个选项卡,单击SearchView,然后关闭SearchView
On MenuItemCompat.OnActionExpandListener::onMenuItemActionCollapse(...)
clearAllTabs() [A, B, C, Search] -> []
addTabs(displayedTabs) [] -> [A, B, C]
ViewPager.OnPageChangeListener::OnPageSelected(2)
ViewPager.OnPageChangeListener::OnPageScrolled(2, 0.0, 0)
viewPager.setCurrentItem(1, true)
ViewPager.OnPageChangeListener::onPageScrollStateChanged(2)
ViewPager.OnPageChangeListener::onPageSelected(1)
tabLayout.removeAllTabs()
tabLayout.setupWithViewPager(viewPager);
ViewPager.OnPageChangeListener::onPageSelected(0) [NOTE: this statement does not fire if Tab A was displayed before opening SearchView]
return true
ViewPager.OnPageChangeListener::onPageScrolled(0, 0.0, 0)
// UI display is updated (Tab 1 fragment is displayed, but tab indicator is on 2nd Tab)
ViewPager.OnPageChangeListener::onPageScrollStateChanged(0)
On MenuItemCompat.OnActionExpandListener::onMenuItemActionCollapse(...)
clearAllTabs() [A, B, C, Search] -> []
addTabs(displayedTabs) [] -> [A, B, C]
ViewPager.OnPageChangeListener::OnPageSelected(2)
ViewPager.OnPageChangeListener::OnPageScrolled(2, 0.0, 0)
tabLayout.removeAllTabs()
tabLayout.setupWithViewPager(viewPager);
ViewPager.OnPageChangeListener::onPageScrollStateChanged(2)
ViewPager.OnPageChangeListener::onPageSelected(0)
viewPager.setCurrentItem(1, true)
ViewPager.OnPageChangeListener::onPageSelected(1)
return true
ViewPager.OnPageChangeListener::onPageScrolled(1, 0.0, 0)
// UI display is updated (Tab 2 fragment is displayed, but tab indicator is on 3rd Tab)
ViewPager.OnPageChangeListener::onPageScrollStateChanged(0)
github
这是我的
- SearchView折叠代码