Android tablayout选择最后一个选项卡而不是第一个选项卡
我需要你的帮助。我有一个带有着色图像视图和文本视图的表格布局。我想突出显示默认选中的选项卡,它是第一个选项卡。 这是我的示例代码:Android tablayout选择最后一个选项卡而不是第一个选项卡,android,android-tablayout,Android,Android Tablayout,我需要你的帮助。我有一个带有着色图像视图和文本视图的表格布局。我想突出显示默认选中的选项卡,它是第一个选项卡。 这是我的示例代码: TabLayout.Tab tab; mTabs = (TabLayout) findViewById(R.id.tabs); mViewpager = (ViewPager) findViewById(R.id.viewpager); MyPagerAdapter pagerAdapter = new MyPagerAdapter(getSupportFragme
TabLayout.Tab tab;
mTabs = (TabLayout) findViewById(R.id.tabs);
mViewpager = (ViewPager) findViewById(R.id.viewpager);
MyPagerAdapter pagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
mViewpager.setAdapter(pagerAdapter);
mViewpager.addOnPageChangeListener(new MyPageScrollListener(mTabs));
mTabs.setupWithViewPager(mViewpager);
// Iterate over all tabs and set the custom view
for (int i = 0; i < mTabs.getTabCount(); i++) {
tab = mTabs.getTabAt(i);
tab.setCustomView(pagerAdapter.getTabView(i));
}
mTabs.setOnTabSelectedListener(new MyOnTabSelectedListener());
tab.select();
TabLayout.Tab;
mTabs=(TabLayout)findViewById(R.id.tabs);
mViewpager=(ViewPager)findViewById(R.id.ViewPager);
MyPagerAdapter pagerAdapter=新的MyPagerAdapter(getSupportFragmentManager());
mViewpager.setAdapter(pagerAdapter);
mViewpager.addOnPageChangeListener(新的MyPageScrollListener(mTabs));
MTAB.setupWithViewPager(mViewpager);
//迭代所有选项卡并设置自定义视图
对于(int i=0;i
但它选择的是最后一个标签。这里有人知道怎么解决这个问题吗?我将感谢任何帮助。谢谢 您选择了最后一个选项卡。
看看您的源代码:)
另一个(也许更好)的解决方案是将for循环转换成这个
for (int i = mTabs.getTabCount() - 1; i >= 0; i--) {
tab = mTabs.getTabAt(i);
}
然后,您进入此循环的“最后一个”选项卡是表格布局中的第一个选项卡
完整的示例代码如下所示。最后,我在这里找到了一个解决方案:
我补充说:
mTabs.getTabAt(1).select();
mTabs.getTabAt(0).select();
而且它有效 我找到了更好的解决办法。相反,如果从表格布局中选择选项卡,则可以使用ViewPager执行此操作,如下所示:
ViewPager viewPager = (ViewPager) findViewById(R.id.restaurant_menu_viewPager);
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
// ViewPager mit TabLayout verknüpfen
TabLayout tabLayout = (TabLayout) findViewById(R.id.restaurant_menu_tabLayout);
tabLayout.setupWithViewPager(viewPager);
viewPager.setCurrentItem(1);
请看这里的帖子:
此代码无法编译。选项卡不在范围内,因为它是在for循环
中声明的。当你想选择一个选项卡时,你应该改为mviewpage.setCurrentItem(indexOfItem)
。@Darwind抱歉,我更新了我的帖子。尝试了mViewpager.setCurrentItem(0),但它不起作用我遵循以下示例:关于TintableMageView。但我甚至尝试了你的更新代码,但(第一个选项卡)仍然没有突出显示。每当我单击其他选项卡时,这是突出显示第一个选项卡的唯一方法。我甚至尝试设置Selected(true),它突出显示3个选项卡,但不突出显示第一个选项卡
mTabs.getTabAt(1).select();
mTabs.getTabAt(0).select();
ViewPager viewPager = (ViewPager) findViewById(R.id.restaurant_menu_viewPager);
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
// ViewPager mit TabLayout verknüpfen
TabLayout tabLayout = (TabLayout) findViewById(R.id.restaurant_menu_tabLayout);
tabLayout.setupWithViewPager(viewPager);
viewPager.setCurrentItem(1);