【发布时间】:2017-02-23 05:14:08
【问题描述】:
Screen shot of Tab where text color remains highlighted 我正在使用 android 视图寻呼机和选项卡布局。在选项卡布局的 xml 中,我使用此代码设置选项卡布局
`<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="fixed"
app:tabBackground="@color/LightGrey"
app:tabIndicatorColor="@color/app_highlight_color"
app:tabIndicatorHeight="3dp"
app:tabTextAppearance="@style/MyCustomTextAppearance"
app:tabSelectedTextColor="@color/app_highlight_color"
app:tabGravity="fill"/>`
问题是当我通过向左/向右滑动来更改 viewpager 的页面/片段时,它工作正常并将标签的文本颜色从正常更改为突出显示,反之亦然。
但是当我单击任何选项卡以更改片段时,片段会更改,但选项卡的文本仍保持选中状态。当用户触摸另一个选项卡时,它应该被取消选中。这是我设置的选项卡布局 java 函数
private void setupTabLayout() {
tabLayout.setTabTextColors(R.color.LightGrey,R.color.app_highlight_color);
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
//tab.setCustomView(R.drawable.tab_trending_selected);
switch (tab.getPosition()) {
case AppConstants.TRENDING_INDEX:
tab.setIcon(R.drawable.tab_trending_selected);
tab.select();
break;
case AppConstants.DUB_INDEX:
tab.setIcon(R.drawable.tab_dub_selected);
tab.select();
break;
case AppConstants.PROFILE_INDEX:
tab.setIcon(R.drawable.tab_profile_selected);
tab.select();
break;
default:
break;
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
switch (tab.getPosition()) {
case AppConstants.TRENDING_INDEX:
tab.setIcon(R.drawable.tab_trending_unselected);
//tab.setText("Trending");
break;
case AppConstants.DUB_INDEX:
tab.setIcon(R.drawable.tab_dub_unselected);
// tab.setText("Dub");
break;
case AppConstants.PROFILE_INDEX:
tab.setIcon(R.drawable.tab_profile_unselected);
// tab.setText("Profile");
break;
default:
break;
}
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
tabLayout.setTabTextColors(getResources().getColor(R.color.Gray), getResources().getColor(R.color.app_highlight_color));
tabLayout.getTabAt(AppConstants.TRENDING_INDEX).setIcon(R.drawable.tab_trending_selected);
tabLayout.getTabAt(AppConstants.DUB_INDEX).setIcon(R.drawable.tab_dub_unselected);
tabLayout.getTabAt(AppConstants.PROFILE_INDEX).setIcon(R.drawable.tab_profile_unselected);
tabLayout.getTabAt(AppConstants.TRENDING_INDEX).select();
}
【问题讨论】:
-
添加tabLayout.getTabAt(position).select();
-
当我通过点击tablayout中的任何选项卡来更改页面时,选项卡文本颜色没有改变
-
删除“tabLayout.setTabTextColors(R.color.LightGrey,R.color.app_highlight_color);”这条线并检查
-
没有进展。还是同样的问题。我也在问题中添加了问题的屏幕截图。 @ak sacha
标签: android android-fragments tabs android-viewpager android-tablayout