我正在使用 PagerSlidingTabStrip 库来制作我的标签。 我不能从右到左交换它。
我已经搜索过,解决方案是
add tabsContainer.setGravity(Gravity.RIGHT);
但它对我不起作用。
我将库代码更改为此但不起作用:
tabsContainer = new LinearLayout(context);
tabsContainer.setGravity(Gravity.RIGHT);
tabsContainer.setOrientation(LinearLayout.HORIZONTAL);
tabsContainer.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
addView(tabsContainer);
如何向右移动标签?
答案 0 :(得分:1)
如果您使用此库
https://github.com/astuetz/PagerSlidingTabStrip
在第164行:
之前在PagerSlidingTabStrip中添加此行pager.setCurrentItem(pager.getAdapter().getCount()-1);
像这样:
public void setViewPager(ViewPager pager) {
this.pager = pager;
if (pager.getAdapter() == null) {
throw new IllegalStateException("ViewPager does not have adapter instance.");
}
pager.setOnPageChangeListener(pageListener);
pager.setCurrentItem(pager.getAdapter().getCount()-1);
notifyDataSetChanged();
}
并在你的活动中反向片段排序位置如下:
public class MyPagerAdapter extends FragmentPagerAdapter {
private final String[] TITLES = { "Categories", "Home", "Top Paid", "Top Free", "Top Grossing", "Top New Paid",
"Top New Free", "Trending" };
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public CharSequence getPageTitle(int position) {
return TITLES[position];
}
@Override
public int getCount() {
return TITLES.length;
}
boolean enableStickerToSticker = true;
boolean enableCommentSticker = true;
boolean enableLatestTap = true;
@Override
public Fragment getItem(int position) {
return LatestListFragment.newInstance(TITLES.length - 1
- position);
}
}
但是如果你使用这个库:
https://github.com/jpardogo/PagerSlidingTabStrip
在活动中更改此行:
pager.setCurrentItem(1);
到此:
pager.setCurrentItem(pager.getAdapter().getCount()-1);
和适配器中的反向片段索引如下:
@Override
public Fragment getItem(int position) {
return SuperAwesomeCardFragment.newInstance(TITLES.length-1-position);
}
答案 1 :(得分:0)
将android:layoutDirection="ltr"
添加到PagerSlidingTabStrip布局