0

Facebookがこれをどのように行ったかは誰でも知っています:



代替テキスト



私が知っていることから、タブホストの高さを変更することはできません。タブホストに "Frank Cho" ビューを配置して、短く見えるようにしたのではないかと推測していますが、間違っている可能性があります。何が起こっているか知っている人はいますか?

4

2 に答える 2

3

実際には、カスタムの外観のタブ ウィジェットを使用できます。タブ インジケーターを (ドローアブルを使用して) カスタム レイアウトに設定する必要があります。

半例を次に示します。

final TabHost host = getTabHost();

final TextView indicator = (TextView) getLayoutInflater().inflate(
                            R.layout.tab_indicator,
                            getTabWidget(), false);
indicator.setText("Tab title");

host.addTab(host.newTabSpec("The tab tag")
            .setIndicator(indicator)
            .setContent([put your content here]));
}

tab_indicator レイアウトは次のようになります。

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tab_label"
    android:layout_width="0dip"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:gravity="center"
    android:textSize="14sp"
    android:textStyle="bold"
    android:minHeight="38dp"
    android:background="@drawable/minitab" />

minitab ドローアブルは、ドローアブル アイテム セレクターです (したがって、選択済み、デフォルト、押された、および未選択の画像が必要です)。Facebook アプリは、デフォルトのタブに白いドローアブル画像を使用し、選択されていないタブに青いグラデーションのドローアブルを使用しました。

完全な動作例については、Google IO スケジュール アプリをチェックしてください: http://code.google.com/p/iosched/ (具体的には TrackDetailActivity.java)

于 2010-10-07T00:14:36.153 に答える
2

他の誰かが私が正しいと思う答えを持っていましたが、何らかの理由で削除しました...

問題の高さは の高さではなく、 の高さTabHostですTabWidget

またはプラスのドローアブル リソースの代わりにsetIndicator()を使用するバージョンを使用してみてください。私はまだこれで遊んでいませんが、この問題をうまく解決することを理解しています。ViewStringString

ただし、強すぎてタップできないタブが表示されないように注意してください。

于 2010-10-07T00:18:03.477 に答える