for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
Log.v("","tabhost...");
Log.v("","tabHost.getTabWidget().getChildAt(i).getLayoutParams() " +tabHost.getTabWidget().getChildAt(i));
RelativeLayout relativeLayout = (RelativeLayout)tabHost.getTabWidget().getChildAt(i);
relativeLayout.getChildCount();
Log.v("","count "+relativeLayout.getChildCount()+" relativeLayout.getChildAt(i) "+relativeLayout.getChildAt(i));
TextView tabhostText = (TextView) relativeLayout.getChildAt(1);
tabhostText.setTextSize(20.0f);
tabHost.getTabWidget().getChildAt(i).getLayoutParams().height = 30;
}
在上面的代码中,一切正常,即我能够在选项卡上看到文本。但我无法在设备中看到该文本。只有文本的某些部分可见。请任何机构找到解决办法。
提前致谢..
答案 0 :(得分:1)
我知道您的问题现在已有10个月了,但原因只有部分文字可见是因为您将高度设置为30.手机上的默认设置可能是96像素(如果您的手机有64像素,则可能是64像素降低水平)。
如果您想使代码更具通用性,可以先获取选项卡的高度,然后将每个选项卡的高度设置为原始高度的百分比。在下面的示例中,我将标签的高度设置为原始高度的80%。:
double height = tabHost.getTabWidget().getChildAt(0).getLayoutParams().height;
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
RelativeLayout relativeLayout = (RelativeLayout)tabHost.getTabWidget().getChildAt(i);
TextView tabhostText = (TextView) relativeLayout.getChildAt(1);
tabhostText.setTextSize(20.0f);
tabHost.getTabWidget().getChildAt(i).getLayoutParams().height = (int) (0.8 * height);
}
P.S。您可能希望下次更好地提出您的问题。我想我明白你在问什么,但这只是因为我正在做同样的事情。尝试以正常问题形式处理您的问题(例如以问号结尾)。
答案 1 :(得分:1)
我找到了解决方案。
View v = getLayoutInflater().inflate(R.layout.tab_header, null);
tabSpec.setIndicator(v);
只需使用标签的自定义布局。