只有2个标签的SlidingTabs

时间:2014-11-20 01:16:33

标签: android android-tabs

如何只使用2个标签和每个标签视图,屏幕宽度为50%?喜欢当前的Youtube应用程序。请帮忙。

以下截图(左)是来自android(右)的示例是当前的Youtube app:

enter image description here enter image description here

4 个答案:

答案 0 :(得分:2)

只有这样才能修改SlidingTabLayout的源代码。

要获取当前窗口大小,您可以使用此方法:

public static Point getWindowSize(Activity ac) {
    Point size;
    Display display = ac.getWindowManager().getDefaultDisplay();
    display.getSize(size);
    return size;
}

比在populateTabStrip方法中添加布局参数

mTabStrip.addView(tabView);

方法

像这样的Smth

width = getWindowSize().x;
mTabStrip.addView(tabView, 
    new LinearLayout.LayoutParams(width/2, ViewGroup.LayoutParams.WRAP_CONTENT));

答案 1 :(得分:0)

尝试在PagerAdapter中覆盖此方法(我假设您正在使用ViewPager):http://developer.android.com/reference/android/support/v4/view/PagerAdapter.html#getPageWidth%28int%29

答案 2 :(得分:0)

这对我来说非常适合。

mTabStrip.addView(tabView);

从SlidingTabLayout中的populateTabStrip()到

DisplayMetrics display = this.getResources().getDisplayMetrics();
int width = display.widthPixels;
mTabStrip.addView(tabView, 
            new LinearLayout.LayoutParams(width/2, ViewGroup.LayoutParams.WRAP_CONTENT));

我想没有必要按照上一个答案中的建议创建方法getWindowSize(Activity ac)。

答案 3 :(得分:0)

如果其他人需要这个,我将SlidingTab类作为库发布,它有一个方法可以通过调用setDistributeEvenly(true);来解决这个问题。以下是如何使用它的示例:

SlidingTabLayout slidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);
slidingTabLayout.setDistributeEvenly(true);
slidingTabLayout.setViewPager(viewPager);

图书馆位于https://github.com/nispok/slidingtabs。要通过Gradle安装它,请包括:

compile 'com.nispok:slidingtabs:1.0.0'

希望它有所帮助!