Android TabLayout高度不随字体大小增加

cam*_*der 5 android android-tablayout

以下是我的代码TabLayout

<android.support.design.widget.TabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    app:tabIndicatorHeight="0dp"
    app:tabSelectedTextColor="@android:color/white"
    app:tabTextColor="@color/city_grey"
    app:tabTextAppearance="@style/DashboardTabLayoutTextAppearance"
    android:paddingTop="@dimen/dp10"
    android:paddingBottom="@dimen/dp10"
    app:tabPaddingStart="@dimen/dp20"
    app:tabPaddingEnd="@dimen/dp20"
    app:tabMode="scrollable"
    app:tabGravity="fill"/>
Run Code Online (Sandbox Code Playgroud)

而 DashboardTabLayoutTextAppearance 是

<style name="DashboardTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textSize">@dimen/sp40</item>
    <item name="android:fontFamily">sans-serif-light</item>
</style>
Run Code Online (Sandbox Code Playgroud)

可以看出,TabLayout高度已设置为wrap_content,选项卡文本textSize已发送到40sp

因此,TabLayout高度自然应该根据文本高度增加。但在某些设备上,它会垂直剪切文本。

这是 7 英寸标签上的结果 在此输入图像描述

而在 5.5 英寸手机上则运行得非常好 在此输入图像描述

我尝试使用layout_marginpadding属性,但它没有解决问题。

编辑1:添加代码以显示我正在初始化TabLayoutViewPager

private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());
    adapter.addFragment(DashboardWeeklyFragment.newInstance(weeklyData), "Weekly");
    adapter.addFragment(DashboardMonthlyFragment.newInstance(monthlyData), "Monthly");
    adapter.addFragment(DashboardDailyFragment.newInstance(dailyData), "Daily");
    viewPager.setAdapter(adapter);
}
Run Code Online (Sandbox Code Playgroud)

小智 0

整数高度= 50;

使其动态化,例如... tabHost.getTabWidget().getChildAt(i).getLayoutParams().height = (int) (height * this.getResources().getDisplayMetrics().密度);