为什么在SlidingTabLayout中使用自定义选项卡布局时setDistributeEvenly失败?

时间:2016-03-15 18:12:27

标签: android android-layout tabs android-custom-view

我正在使用SlidingTabLayout和我自己的自定义标签布局。一切都按预期工作;选项卡正确显示(标题,顺序,颜色等),但是,setDistributeEvenly在此方案中不起作用。较短的标签选项卡比较短的标签选项卡具有更长的选择指示。例如,"篮球"有比#34; Golf"更长的指示器。这是我的代码。如您所见,setDistributeEvenly设置为true。

    ViewPager pager;
    ViewPagerAdapter adapter;
    SlidingTabLayout tabs;

    adapter =  new ViewPagerAdapter(getSupportFragmentManager(), 10, this);

    pager = (ViewPager) findViewById(R.id.pager);
    pager.setAdapter(adapter);

    tabs = (SlidingTabLayout) findViewById(R.id.tab_layout);
    tabs.setCustomTabView(R.layout.custom_tab, R.id.textView2);
    tabs.setDistributeEvenly(true);
    tabs.setBackgroundColor(getResources().getColor(R.color.red));
    tabs.setSelectedIndicatorColors(getResources().getColor(R.color.white));
    tabs.setViewPager(pager);

这是我的自定义布局:

<?xml version="1.0" encoding="utf-8"?>
<TextView
    android:id="@+id/tab_title"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="8dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="8dp"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#ffffff"/>

我已尝试将布局宽度和高度设置为match_parent,wrap_content和不同的&#34; dp&#34; s的各种组合,但也无济于事。您在上面看到的填充不会根据指标的长度发生任何变化。

您对此方案中setDistributeEvenly(true)失败的原因有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你应该设置tabLayout gravity:

tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

并且不要将tabLayout设置为可滚动(app:tabMode =&#34;可滚动&#34;)否则重力填充将无效。检查一下 Link