自定义TabLayout,如Google Play音乐应用

时间:2016-05-04 04:16:35

标签: android material-design android-tablayout

我将TabLayout实施为类似的Google Play Music应用。

  • Portrait(Google Play音乐): enter image description here
  • Landscape(Google Play音乐): enter image description here

这是我的布局:

 <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </android.support.design.widget.TabLayout>

我处理TabLayout的代码:

private void init() {
    mTabLayout = (TabLayout) findViewById(R.id.tab_layout);
    mTabLayout.addTab(mTabLayout.newTab().setText("Category 1"));
    mTabLayout.addTab(mTabLayout.newTab().setText("Category 2"));
    mTabLayout.addTab(mTabLayout.newTab().setText("Category 3"));
    mTabLayout.addTab(mTabLayout.newTab().setText("Category 4"));
    mTabLayout.addTab(mTabLayout.newTab().setText("Category 5"));
    mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
}

但结果是TabLayout doensn左边有边距:

  • 肖像(我的例子):: enter image description here
  • 风景(我的例子): enter image description here

我试试这个article,但结果并不像预期的那样。如何在Google Play音乐应用中自定义TabLayout如上所示?

1 个答案:

答案 0 :(得分:4)

您应该使用android:marginLeft到TabLayout。

<android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp">

    </android.support.design.widget.TabLayout>

要为纵向和横向方向设置不同的边距,请在值/ dimens.xml和values-land / dimens.xml处使用单独的值

更新:

即使滚动选项卡,使用边距也会占用空间。所以使用填充,clipToPadding="false"

<android.support.design.widget.TabLayout
            android:id="@+id/tab_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="16dp"
            android:clipToPadding="false">

        </android.support.design.widget.TabLayout>