1

SOの多くのヘルプを使用してまとめたカスタムタブアクティビティがあります。しかし、私はいくつかの問題に直面していますが、ここで答えを見つけることができません。

まず、すべてのタブの状態は、色を調整したandroidapkタブリソースからのものです。選択されていないタブの9パッチ画像が各タブの下に表示されていますが、消えることができません。何か提案はありますか?

次に、最初にタブアクティビティに移動したとき、フォーカスされたタブのテキストは変更されませんが、タブを押すか、別のタブに移動して戻ったときに、テキストが変更されます。プレス後にフォーカスされたテキストが表示されるように、最初のフォーカステキストを表示するにはどうすればよいですか?

これが私の意味を示す画像です。左に初期ロード、右に押すと、両方の画像に、タブの後ろに表示されている選択されていないタブの画像が表示されます。

タブがどのように見えるかの画像を投稿しようとしましたが、私の担当者はまだ十分に高くありません。ごめん!

これが私が膨らませているタブレイアウトxmlです:

<?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="75dp"
    android:layout_weight="1"
    android:background="@drawable/custom_tab_selector"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/ivTabIicon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true" />

    <TextView
        android:id="@+id/tvTabTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />

</RelativeLayout>

これが私のセレクターXMLです

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Active tab -->
    <item 
        android:drawable="@drawable/tab_selected" 
        android:state_focused="false" 
        android:state_pressed="false" 
        android:state_selected="true"/>

    <!-- Inactive tab -->
    <item 
        android:drawable="@drawable/tab_unselected"
        android:state_focused="false" 
        android:state_pressed="false" 
        android:state_selected="false"/>

    <!-- Pressed tab -->
    <item 
        android:drawable="@drawable/tab_press" 
        android:state_pressed="true"/>

    <!-- Selected tab (using d-pad) -->
    <item 
        android:drawable="@drawable/tab_focus" 
        android:state_focused="true" 
        android:state_pressed="false" 
        android:state_selected="true"/>

</selector>

そして、これが私のアクティビティJava部分で、各タブを膨らませて表示します

// Initialize a TabSpec for each tab and add it to the TabHost
// Team tab
View tabTeamIndicator = LayoutInflater.from(this).inflate(R.layout.tab_team_layout, getTabWidget(), false);
spec = tabHost.newTabSpec("teamTab");
title = (TextView) tabTeamIndicator.findViewById(R.id.tvTabTitle);
title.setText("Team Manager");
icon = (ImageView) tabTeamIndicator.findViewById(R.id.ivTabIicon);
icon.setImageResource(R.drawable.custom_teamtab_icon);

spec.setIndicator(tabTeamIndicator);
spec.setContent(intentTeam);
tabHost.addTab(spec);

助けてくれてありがとう!ちなみに、私が試している電話の色は、エミュレーターの色よりもはるかに良く見えます!!!

編集:スレッドタイトルを変更

4

1 に答える 1

2

ここでばかげた間違い。タブ ウィジェットを保持する xml レイアウトには、

android:background="@drawable/custom_tab_selector"

タブの背景がバックグラウンドで2回描画される原因となった属性。

于 2012-06-28T23:44:09.800 に答える