我只想在TabLayout的标签中使用文字。不幸的是,默认情况下,选项卡非常大,文本非常小。我看不到使用TabSpec.setIndicator(View)
调整文本大小或标签高度的方法;这将是非常不受欢迎的,因为那时我会定义一个特定的布局,选择器,选定的图像,未选择的图像等...所以我的选项卡将不适合每个设备的外观和感觉。有没有一种方便的方式来自定义Tab外观?
mTabHost.addTab(mTabHost.newTabSpec("system").setIndicator("My first tab").setContent(R.id.fileBrowserTabHostSystemList));
mTabHost.addTab(mTabHost.newTabSpec("recent").setIndicator("My Second tab").setContent(R.id.fileBrowserTabHostRecentList));
答案 0 :(得分:2)
我设法以一种很好的方式改变标签高度:
final int tabChildrenCount = tabWidget.getChildCount();
View currentTab;
for (int i = 0; i < tabChildrenCount; i++) {
currentTab= tabWidget.getChildAt(i);
currentTab.getLayoutParams().height = 32;
}
tabWidget.getLayoutParams().height = LayoutParams.WRAP_CONTENT;
tabWidget.requestLayout();
我还尝试在标签中获取标题的高度,并将标签的高度设置为:
currentTab.findViewById(android.R.id.title).getHeight();
// also tried with getMeasuredHeight()
但它返回0,因为它在onCreate()方法中,并且视图似乎不知道它的大小。 LayoutParams.WRAP_CONTENT对选项卡高度没有好处,因为它的作用是FILL_PARENT。
但请注意,此解决方案仅假设选项卡的标题适合32像素。
最安全的猜测是手动进行布局(已经发布http://joshclemm.com/blog/?p=136)。从Android Repository获取资源并自定义:)