以下是我的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
高度应该根据文本高度自然增加。但在某些设备上,它会垂直剪切文本。
我尝试使用layout_margin
和padding
属性,但它没有解决问题。
编辑1:添加了代码以显示我正在初始化TabLayout
和ViewPager
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);
}
答案 0 :(得分:0)
int height = 50;
让它像动态...... tabHost.getTabWidget()。getChildAt(i).getLayoutParams()。height =(int)(height * this.getResources()。getDisplayMetrics()。density);