1

我尝试了解决方案:

mTabHost.getTabWidget().getChildAt(i).setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,100));

但我想在 XML 中做到这一点。

这是我的布局:

<android.support.v4.app.FragmentTabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginRight="10dp" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >

            <TabWidget
                android:id="@android:id/tabs"
                style="@style/tab"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="0"
                android:orientation="horizontal"
                android:textColor="@drawable/tab_text_selector" />

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_weight="0" />

            <FrameLayout
                android:id="@+android:id/realtabcontent"
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_weight="1" />
        </LinearLayout>
    </android.support.v4.app.FragmentTabHost>

我试图设置 TabWidget 的高度但没有结果。

我为单个选项卡使用自定义视图:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView android:id="@+id/img_tab"
        android:layout_height="30dp"
        android:layout_width="30dp"
        android:scaleType="centerCrop"
        android:layout_alignParentLeft="true"
        android:layout_margin="5dp"
    />

    <TextView
        android:id="@+id/txv_tab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:textSize="22sp"
        android:textAllCaps="true"
        android:textIsSelectable="false"
        android:layout_toRightOf="@+id/img_tab"
        android:layout_margin="5dp">
    </TextView>

    <View android:id="@+id/tab_border" 
        android:layout_width="match_parent"
        android:layout_height="5dp"
        android:layout_alignParentBottom="true"
        android:background="@android:color/holo_green_light"
        />

</RelativeLayout>

我试图设置相对布局高度,但每次我得到全屏高度标签时。

如何设置高度?

4

2 回答 2

3

我认为不可能从 xml 在 android tabwidget 中设置标签高度。我从来没有找到办法做到这一点。为了避免效果不好的问题,我创建了一个非常简单的类,如下所示:

public class TipoDisp 
{ 

  public static int alt_tabs(Context cont)
  {
    int alt;
    int dx, dy;
    DisplayMetrics metrics = cont.getResources().getDisplayMetrics();


    dx = metrics.widthPixels;
    dy = metrics.heightPixels;
    if (dx < dy)
        alt = dy/15;
    else
        alt = dy/10;

    return alt;
   }
}

然后,在活动中我使用这样的东西:

    int alt = TipoDisp.alt_tabs(myactivity.this);
    mTabHost.getTabWidget().getChildAt(i).getLayoutParams().height = alt;
    .....

希望这可以帮助

于 2013-05-24T22:12:37.750 回答
0

比方说,我们想设置第一个选项卡的高度,那么你要做的是:

 mTabHost.getTabWidget().getChildAt(0).getLayoutParams().height=100;

mTabHost= 这是我自己的标签主机。将您的标签主机名称放在那里,我将高度设置为 100dp。现在您根据您的要求进行更改。谢谢

于 2014-07-10T20:27:11.597 回答