我尝试了解决方案:
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>
我尝试设置relativelayout高度,但每次我都获得全屏高度标签。
如何设置高度?
答案 0 :(得分: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;
.....
希望这会有所帮助
答案 1 :(得分:0)
假设我们要设置第一个标签的高度,然后你要做的是:
mTabHost.getTabWidget().getChildAt(0).getLayoutParams().height=100;
mTabHost =它是我自己的tabhost。将您的tabhost名称放在那里 我设置高度100dp。现在您根据自己的要求进行更改。感谢