android-viewpager – android中心在tablayout中对齐选定的选项卡

我正在使用 android支持设计tablayout.这是我的代码
<android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content""
        app:tabGravity="center"
        app:tabMode="scrollable"
        />

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

我的问题是标签总是左对齐.但是,我想将选定的选项卡居中(即使在开头,第一个(选定的)选项卡也应居中).有没有办法做到这一点?谢谢.

解决方法

我看了一下TabLayout,tabContentStart只为其第一个孩子设置了填充 – > SlidingTabStrip,所以我在两边手动设置:
public class CenteringTabLayout extends TabLayout {
    public CenteringTabLayout(Context context) {
        super(context);
    }

    public CenteringTabLayout(Context context,AttributeSet attrs) {
        super(context,attrs);
    }

    public CenteringTabLayout(Context context,AttributeSet attrs,int defStyleAttr) {
        super(context,attrs,defStyleAttr);
    }

    @Override
    protected void onLayout(boolean changed,int l,int t,int r,int b) {
        super.onLayout(changed,l,t,r,b);
        View firstTab = ((ViewGroup)getChildAt(0)).getChildAt(0);
        View lastTab = ((ViewGroup)getChildAt(0)).getChildAt(((ViewGroup)getChildAt(0)).getChildCount()-1);
        ViewCompat.setPaddingrelative(getChildAt(0),(getWidth()/2) - (firstTab.getWidth()/2),(getWidth()/2) - (lastTab.getWidth()/2),0);
    }
}

TabLayout的第一个0索引子项是SlidingTabStrip.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...