我正在使用PagerSlidingTabStrip库。
我不知道如何更改标签背景颜色。我尝试将其从xml更改为:
<android.support.v4.view.PagerTitleStrip
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/title"
android:paddingTop="4dp"
android:layout_gravity="top"
android:background="#222222"
android:paddingBottom="4dp"
>
</android.support.v4.view.PagerTitleStrip>
但它没有用。
这是mainActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
pager = (ViewPager) findViewById(R.id.pager);
adapter = new MyPagerAdapter(getSupportFragmentManager());
pager.setAdapter(adapter);
final int pageMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, getResources().getDisplayMetrics());
pager.setPageMargin(pageMargin);
tabs.setViewPager(pager);
tabs.setTabBackground(Color.RED);
changeColor(currentColor);
}
你可以帮帮我吗?
谢谢你
答案 0 :(得分:1)
如果查看自定义下github中的说明,您可以看到可以使用以下属性更改背景:pstsTabBackground
:每个选项卡的背景可绘制,应该是StateListDrawable。
如果这不起作用,您无论如何都可以在Styles.xml文件中更改它。顺便说一下,你确定你使用的是正确的视图吗?我认为您应该使用com.astuetz.PagerSlidingTabStrip
检查https://github.com/astuetz/PagerSlidingTabStrip了解更多详情
答案 1 :(得分:0)
我建议你使用 android:background 而不是 pstsTabBackground
答案 2 :(得分:0)
更改标签颜色的最佳方法是简单地更改onCreate()
中的文字背景颜色,如:
mTabsLinearLayout = ((LinearLayout) tabs.getChildAt(0));
for (int i = 0; i < mTabsLinearLayout.getChildCount(); i++) {
TextView tv = (TextView) mTabsLinearLayout.getChildAt(i);
if (i == currentPosition) {
tv.setBackgroundColor(getResources().getColor(R.color.caldroid_white));
} else {
tv.setBackgroundColor(getResources().getColor(R.color.gray));
}
}
tabs.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
currentPosition = position;
for(int i=0; i < mTabsLinearLayout.getChildCount(); i++){
TextView tv = (TextView) mTabsLinearLayout.getChildAt(i);
if(i == position){
tv.setBackgroundColor(getResources().getColor(R.color.caldroid_white));
} else {
tv.setBackgroundColor(getResources().getColor(R.color.gray));
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
随着版本改变背景颜色的textview可能是隐形指标。在这种情况下,您可以使用图层列表(如
)为选定和取消选择的选项卡设置自定义背景<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle">
<solid android:color="@color/blue_light" />
</shape>
</item>
<!-- MAIN SHAPE -->
<item android:bottom="4dp">
<shape android:shape="rectangle">
<solid android:color="@color/dashboard_selected_tab" />
</shape>
</item>
Similerly for deselcted tab