如何删除TabItem指标底部填充?

时间:2017-07-18 13:12:53

标签: android xml

如何删除TabItem或其指示器的底部填充,以便它完全出现在工具栏的底部?

enter image description here

我的xml布局

<android.support.v7.widget.Toolbar
        android:id="@+id/menu_fragment_toolbar"
        android:layout_width="match_parent"
        android:layout_height="58dp"
        android:background="@color/app_font_dark"
        android:padding="0dp"
        android:popupTheme="@style/AppTheme.AppBarOverlay"
        app:contentInsetStart="0dp"
        >

        <android.support.design.widget.TabLayout
            android:id="@+id/main_menu_tablayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:paddingEnd="0dp"
            android:paddingStart="0dp"
            app:tabIndicatorColor="@color/app_indicator_color"
            app:tabIndicatorHeight="4dp"
            app:tabMode="scrollable"
            app:tabPaddingEnd="30dp"
            app:tabPaddingStart="30dp"
            app:tabTextAppearance="@style/TabTextStyle"
            />
</android.support.v7.widget.Toolbar>

我尝试将ToolbarTabLayout的底部边距和填充设置为0dp,但它似乎没有生效。我使用支持库v26.0.0-alpha1和使用API​​ 25的设备。 我通过调用

动态添加TabItems

tabLayout.addTab(tabLayout.newTab().setText("Some long text"));

4 个答案:

答案 0 :(得分:3)

在TabLayout中使用match_parent高度,如下所示

 <android.support.design.widget.TabLayout
        android:id="@+id/main_menu_tablayout"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:paddingEnd="0dp"
        android:paddingStart="0dp"
        app:tabIndicatorColor="@color/app_indicator_color"
        app:tabIndicatorHeight="4dp"
        app:tabMode="scrollable"
        app:tabPaddingEnd="30dp"
        app:tabPaddingStart="30dp"
        app:tabTextAppearance="@style/TabTextStyle"
        />

答案 1 :(得分:0)

试试这个: 如果tabPaddingStart/tabPaddingEnd/tabPaddingTop/tabPaddingBottom 0dp无效,请尝试使用-1dp

<android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/bg_forum_tab"
        app:tabIndicatorColor="@color/app_indicator_color"
        app:tabIndicatorHeight="0dp"
        app:tabPaddingBottom="0dp"
        app:tabPaddingEnd="0dp"
        app:tabPaddingStart="0dp"
        app:tabPaddingTop="0dp"
        app:tabTextAppearance="@style/TabTextStyle" />

答案 2 :(得分:0)

试试这个 创建一个像这样的主题

<style name="Base.Widget.Design.TabLayout" parent="android:Widget">
<item name="tabMaxWidth">@dimen/tab_max_width</item>
<item name="tabIndicatorColor">?attr/colorAccent</item>
<item name="tabIndicatorHeight">2dp</item>
<item name="tabPaddingStart">12dp</item>
<item name="tabPaddingEnd">12dp</item>
<item name="tabBackground">?attr/selectableItemBackground</item>
<item name="tabTextAppearance">@style/TextAppearance.Design.Tab</item>
<item name="tabSelectedTextColor">?android:textColorPrimary</item>

将此主题设置为您的tablayout

<android.support.design.widget.TabLayout
      android:id="@+id/main_menu_tablayout"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="start"         
      app:tabIndicatorHeight="4dp"
      app:tabMode="scrollable"      
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
      app:tabTextAppearance="@style/TabTextStyle"
        />

答案 3 :(得分:0)

我已更新为androidx,像这样android:layout_height="?attr/actionBarSize"

更改身高

我的代码在下面

<com.google.android.material.tabs.TabLayout
    android:id="@+id/tl_local_category"
    android:layout_width="0dp"
    android:background="?attr/colorPrimary"
    android:layout_height="?attr/actionBarSize"
    app:tabTextAppearance="@style/TabTextAppearance"
    app:tabSelectedTextColor="@color/white"
    app:tabTextColor="@color/tab_text"
    app:layout_constraintEnd_toEndOf="parent"
    app:tabIndicatorColor="@android:color/white"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">
</com.google.android.material.tabs.TabLayout>

enter image description here