Android:ViewPager-PagerSlidingTabStrip,选择状态的自定义选项卡背景
我需要为每个选项卡使用自定义背景,当它们中的每一个都处于选中状态时。但当我选择一个选项卡时,仍然没有发生任何事情 我使用的选择器如下:(tab_selector.xml) 我尝试混合不同的状态并重新定位它们,但仍然不起作用。Android:ViewPager-PagerSlidingTabStrip,选择状态的自定义选项卡背景,android,android-viewpager,pagerslidingtabstrip,Android,Android Viewpager,Pagerslidingtabstrip,我需要为每个选项卡使用自定义背景,当它们中的每一个都处于选中状态时。但当我选择一个选项卡时,仍然没有发生任何事情 我使用的选择器如下:(tab_selector.xml) 我尝试混合不同的状态并重新定位它们,但仍然不起作用。 我试图在选定的模式上设置一个特定的选项卡,但我想不出来 我自己想出来了,但不是用标准的方法! 因为我需要在我选择的选项卡上有一个类似渐变的背景,所以我使用了指示器和下划线,如下所示: <com.astuetz.PagerSlidingTabStrip andr
我试图在选定的模式上设置一个特定的选项卡,但我想不出来 我自己想出来了,但不是用标准的方法! 因为我需要在我选择的选项卡上有一个类似渐变的背景,所以我使用了指示器和下划线,如下所示:
<com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="48dip"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@drawable/tab_back"
app1:pstsUnderlineHeight="24dip"
app1:pstsIndicatorHeight="48dip"
app1:pstsIndicatorColor="#e7e7e7"
app1:pstsShouldExpand="true" />
仅适用于那些不使用分叉页面滑动标签条寻找答案的人 对于选择器问题,您可以使用CustomOnPageChangeListener在tabStrip上设置OnPageChangeListener,并将tabStrip内按钮的选中状态设置为“true” 这是我的CustomOnPageChangeListener
private class CustomOnPageChangeListenner implements ViewPager.OnPageChangeListener{
private PagerSlidingTabStrip tabStrip;
private int previousPage=0;
//Constructor initiate with TapStrip
//
public CustomOnPageChangeListenner(PagerSlidingTabStrip tab){
tabStrip=tab;
//Set the first image button in tabStrip to selected,
((LinearLayout)tabStrip.getChildAt(0)).getChildAt(0).setSelected(true);
}
@Override
public void onPageScrolled(int i, float v, int i2) {
}
@Override
public void onPageSelected(int i) {
//set the previous selected page to state_selected = false
((LinearLayout)tabStrip.getChildAt(0)).getChildAt(previousPage).setSelected(false);
//set the selected page to state_selected = true
((LinearLayout)tabStrip.getChildAt(0)).getChildAt(i).setSelected(true);
//remember the current page
previousPage=i;
}
@Override
public void onPageScrollStateChanged(int i) {
}
}
然后将此自定义侦听器设置为选项卡条
PagerSlidingTabStrip tabStrip;
tabStrip.setOnPageChangeListener(new CustomOnPageChangeListenner(tabStrip));
我调用
PagerSlidingTabStrip.setOnPageChangeListener
而不是viewPager.setOnPageChangeListener
它对我很有用。嘿,我也想这么做,但不明白什么是app1??您可以使用它来自定义此库的属性。我在几周前使用过这个,但我认为要有不止一个元素,应该使用app2、app3等等@法扎迪夫,你知道如何在每个标签上放一个不同的抽屉吗?用于使用选项卡选择器文件的
xml
customizationpstBranchBackground
将只使用一个图像。不知道如何在我的4个标签上添加4种不同的抽绳。如果你知道的话,谢谢你。你剪的不管用,兄弟。NPE in((LinearLayout)选项卡strip.getChildAt(0)).getChildAt(0)
<com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="48dip"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@drawable/tab_back"
app1:pstsUnderlineHeight="24dip"
app1:pstsIndicatorHeight="48dip"
app1:pstsIndicatorColor="#e7e7e7"
app1:pstsShouldExpand="true" />
private class CustomOnPageChangeListenner implements ViewPager.OnPageChangeListener{
private PagerSlidingTabStrip tabStrip;
private int previousPage=0;
//Constructor initiate with TapStrip
//
public CustomOnPageChangeListenner(PagerSlidingTabStrip tab){
tabStrip=tab;
//Set the first image button in tabStrip to selected,
((LinearLayout)tabStrip.getChildAt(0)).getChildAt(0).setSelected(true);
}
@Override
public void onPageScrolled(int i, float v, int i2) {
}
@Override
public void onPageSelected(int i) {
//set the previous selected page to state_selected = false
((LinearLayout)tabStrip.getChildAt(0)).getChildAt(previousPage).setSelected(false);
//set the selected page to state_selected = true
((LinearLayout)tabStrip.getChildAt(0)).getChildAt(i).setSelected(true);
//remember the current page
previousPage=i;
}
@Override
public void onPageScrollStateChanged(int i) {
}
}
PagerSlidingTabStrip tabStrip;
tabStrip.setOnPageChangeListener(new CustomOnPageChangeListenner(tabStrip));