0

私たちは Android 開発に非常に慣れていないため、これが明らかな場合は申し訳ありません。

タブ付きビューを使用してアクティビティを実装しています。私たちが抱えている問題は、タブ自体のアイコンと適切な色が Jelly Bean (Android 4.2) で適切に表示されないことです。ただし、Gingerbread などの以前の API レベルでは正しく表示されます。

注意: 私たちは当初、非推奨の TabActivity クラスを使用してビューを作成しました。しかし、私が知る限り、これを行う「新しい」方法は古い方法とそれほど変わらないはずですか? 間違っている場合は修正してください。

これは、タブ ホスト レイアウトを含む xml です。

<?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"
    android:background="@color/Black">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="5dp">

        <include layout="@layout/logo_bar"/>

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"/>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >
        </FrameLayout>
     </LinearLayout>
</TabHost>

関連する(希望する)アクティビティコードは次のとおりです。

public class MainTabActivity extends FragmentActivity implements TabHost.TabContentFactory
    private TabHost tabHost;
    // other instance variables ...

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        tabHost = (TabHost)findViewById(android.R.id.tabhost);
        tabHost.setup();

        TabSpec loginTabSpec = tabHost.newTabSpec(GlobalConstants.LOGIN_ACTIVITY);
        loginTabSpec.setIndicator("Settings", getResources().getDrawable(R.drawable.ic_action_settings_gear));
        loginTabSpec.setContent(this);

        TabSpec mainTabSpec = tabHost.newTabSpec(GlobalConstants.MAIN_ACTIVITY);
        mainTabSpec.setIndicator("Lone Worker", getResources().getDrawable(R.drawable.ic_action_settings_phone));
        mainTabSpec.setContent(this);

        tabHost.addTab(mainTabSpec);
        tabHost.addTab(loginTabSpec);
    }

これは、Jelly Bean でタブ自体がどのように見えるかです (悪いバージョン):ここに画像の説明を入力

そして最後に、これは次のようになります (ジンジャーブレッドでは... 良いバージョン):ここに画像の説明を入力

繰り返しになりますが、タブの背景色は黒です (通常は素敵な青色ですが)。悪いスクリーン ショットからはわかりにくいですが、いずれかのタブのアイコンがジェリー ビーンに表示されません。 . ここで問題の概要が十分に説明されていることを願っています。抜けているものがあれば教えてください。前もって感謝します!

4

1 に答える 1

1

何らかの理由で Android (>= ICS) の以降のバージョンでは、使用している場合、タブにはテキスト ラベルまたはアイコンのみを含めることができます。

setIndicator(CharSequence label, Drawable icon)

テキストが表示されないのは、ICS のタブのデフォルトのテキストの色が黒であるため、黒の背景では表示されないためだと思われます。

解決策は、独自のビューを作成して使用することです

setIndicator(View view)

詳細はこちら:タブのアイコンが表示されない

そしてここhttp://ondrejcermak.info/en/programovani/custom-tabs-in-android-tutorial/

于 2013-02-26T06:56:21.687 に答える