选项卡主机高度在android中

时间:2011-05-04 10:24:37

标签: android

    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;

        }

在上面的代码中,一切正常,即我能够在选项卡上看到文本。但我无法在设备中看到该文本。只有文本的某些部分可见。请任何机构找到解决办法。

提前致谢..

2 个答案:

答案 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);

只需使用标签的自定义布局。