2

タブでのデザインの設定に問題があります。そのため、tabHost に追加する各タブスペックのセレクターを作成しました。これがどのように見えるかです:

ここに画像の説明を入力

だからここに私のタブの活動があります:

public class TabLayouts extends TabActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabhost);

        TabHost tabHost = getTabHost();
        tabHost.getTabWidget().setStripEnabled(false);

        TabSpec latest = tabHost.newTabSpec(getString(R.string.latest_title));
        tabHost.setBackgroundResource(R.drawable.tabbar);

        // setting Title and Icon for the Tab
        latest.setIndicator(getString(R.string.latest_title), getResources().getDrawable(R.drawable.latest_albums_sel));
        Intent latestAlbums = new Intent(this, LatestAlbums.class);
        latest.setContent(latestAlbums);

        TabSpec favorites = tabHost.newTabSpec(getString(R.string.favorites_title));
        favorites.setIndicator(getString(R.string.favorites_title), getResources().getDrawable(R.drawable.favorites_sel));
        Intent favoritesInt = new Intent(this, Favorites.class);
        favorites.setContent(favoritesInt);

        TabSpec downloaded = tabHost.newTabSpec(getString(R.string.downloaded_title));
        downloaded.setIndicator(getString(R.string.downloaded_title), getResources().getDrawable(R.drawable.downloaded_sel));
        Intent downloadedIntent = new Intent(this, Downloaded.class);
        downloaded.setContent(downloadedIntent);

        tabHost.addTab(latest);
        tabHost.addTab(favorites);
        tabHost.addTab(downloaded);
    }
}

そして私のセレクターの1つ:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
     <!-- PRESSED TAB -->
    <item android:top="0dp" android:left="0dp" android:right="0dp" android:bottom="0dp"
        android:state_pressed="true"
        android:drawable="@drawable/menu3_pr"
        />
    <!-- INACTIVE TABS -->
    <item android:top="0dp" android:left="0dp" android:right="0dp" android:bottom="0dp"
        android:state_selected="false"
        android:state_focused="false"
        android:state_pressed="false"
        android:drawable="@drawable/menu3_nr"
        />
    <!-- ACTIVE TAB -->
    <item android:top="0dp" android:left="0dp" android:right="0dp" android:bottom="0dp"
        android:state_selected="true"
        android:state_focused="false"
        android:state_pressed="false"
        android:drawable="@drawable/menu3_pr"
        />
    <!-- SELECTED TAB -->
    <item android:top="0dp" android:left="0dp" android:right="0dp" android:bottom="0dp"
        android:state_focused="true"
        android:state_selected="true"
        android:state_pressed="false"
        android:drawable="@drawable/menu3_pr"
        />
</selector>

そして私のタブホストのレイアウト:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <RelativeLayout
        android:background="@drawable/tabbar"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <FrameLayout
            android:background="@drawable/background"
            android:layout_above="@android:id/tabs"
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"/>
        <TabWidget
            android:showDividers="none"
            android:layout_alignParentBottom="true"
            android:id="@android:id/tabs"
            android:scaleY="0.8"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    </RelativeLayout>
</TabHost>

誰でもこの問題を解決するのを手伝ってもらえますか?

4

1 に答える 1

5

これは単純な手法です。.setIndicator()引数を 1 つ渡して使用する必要があります。

latest.setIndicator(getString(R.string.latest_title)). 

使用している上記

.setIndicator(getString(R.string.latest_title), getResources().getDrawable(R.drawable.latest_albums_sel))

2番目の引数を削除します

getResources().getDrawable(R.drawable.latest_albums_sel)

コードから、次のようなすべてのタブを追加するとき

tabHost.addTab(latest);
tabHost.addTab(favorites);
tabHost.addTab(downloaded); 

以下のコードを使用してください

tabHost.getTabWidget().getChildAt(0).setBackgroundResource(R.drawable.latest);
tabHost.getTabWidget().getChildAt(1).setBackgroundResource(R.drawable.favorites);
tabHost.getTabWidget().getChildAt(2).setBackgroundResource(R.drawable.downloaded);

これで完了です:)これは、あなたの問題も解決することを願っています。

于 2013-10-04T08:04:40.117 に答える