gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 02:45:31 27 4
gpt4 key购买 nike

我正在使用 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 只为它的第一个 child 设置了 padding -> 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),0,(getWidth()/2) - (lastTab.getWidth()/2),0);
}
}

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

关于android-viewpager - android center在tablayout中对齐选定的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32083638/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com