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

时间:2017-02-23 12:27:31

标签: 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"/>

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>

可以看出,TabLayout身高已设为wrap_content且标签文字textSize已发送至40sp

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

这是7英寸标签上的结果 enter image description here

而在5.5英寸手机上,它的工作原理非常好 enter image description here

我尝试使用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);
}

1 个答案:

答案 0 :(得分:0)

int height = 50;

让它像动态...... tabHost.getTabWidget()。getChildAt(i).getLayoutParams()。height =(int)(height * this.getResources()。getDisplayMetrics()。density);