PagerSlidingTabStrip-如何从右到左标签

时间:2014-08-11 11:38:31

标签: android android-tabhost tabcontainer

我正在使用 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);

如何向右移动标签?

2 个答案:

答案 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布局