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);