【问题标题】:How can we specify width for each tab in tabhost?我们如何为 tabhost 中的每个选项卡指定宽度?
【发布时间】:2011-04-27 09:16:59
【问题描述】:

我在我的应用程序中使用 tabhost。我们可以为每个选项卡提供单独的宽度属性吗?即一个宽度较大,另一个宽度较小?

【问题讨论】:

    标签: android android-tabhost


    【解决方案1】:

    我们可以在代码中提到标签宽度:

    tabHost.getTabWidget().getChildAt(0).getLayoutParams().width = 50;
    

    【讨论】:

    • 不要忘记保持设备独立,使用 DisplayMetrics.density 将硬编码的像素值更正为 dp 值。
    【解决方案2】:

    我尝试了下面的代码,它对我来说非常好

    LayoutParams params = tabHost.getTabWidget().getChildAt(0).getLayoutParams();
    params.width = 170;
    params.height = 120;
    tabHost.getTabWidget().getChildAt(0).setLayoutParams(params );
    

    您可以根据需要更改宽度和高度。

    【讨论】:

      【解决方案3】:

      供您参考,如果TabWidget的父布局是LinearLayout,那么您可能还需要设置子LayoutParams的权重。因为在我的例子中标签会拉伸它的宽度,因为它的默认权重是 1.0。

      ((LinearLayout.LayoutParams)mTabHost.getTabWidget().getChildAt(i).getLayoutParams()).weight = 0;
      

      【讨论】:

      • 谢谢,这是我错过的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多