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からandroidtabwidgetでタブの高さを設定することはできないと思います。私はこれを行う方法を見つけられませんでした。悪影響の問題を回避するために、次のような非常に単純なクラスを作成しました。

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 に答える