Вопрос

В моем приложении Android я использую TabWidget без какой-либо специальной настройки. Я хотел бы, чтобы Android позаботиться о конкретном внешнем виде, который отлично работает, если вы сравните Android 1.6 с 2.1, например. Просто используя TabWidget, тот же код приводит к различным формам вкладок, потому что SDK определяет, как его нарисовать. Вот как он смотрит на 2.1, например:

alt text

Итак, выделенная вкладка серая, а шрифт белый, и вы можете прочитать его довольно хорошо.

Но, если у вас есть HTC Sense, это выглядит так:alt text

Картина не так хороша, но просто верь мне, что это белый текст на белом фоне, который на самом деле не так легко читать ...

Мои вопросы:

1) Почему Android создает TabWidget с белым на белом тексте? Я никогда не определял ни цветного цвета, ни цвета фона, поэтому система должна выбрать разумные цвета.

2) Я предполагаю, что другие Tabwidgets выглядят просто в порядке на HTC Sense, потому что в противном случае это будет довольно большая и популярная проблема. Так почему же мой табвиджет имеет эту проблему, а не другие.

3) Как я могу решить эту проблему, не изменив внешний вид на нечувствительные устройства?

Как я уже сказал, я ни каким-либо образом настроил Tabwidget. Вот мое определение:

<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="@android:color/black"
    >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            />
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="0dp"
            >
      <ScrollView 
            android:id="@+id/shortenerScrollView"
            android:layout_height="fill_parent" 
            android:layout_width="fill_parent"
            android:background="@android:color/black"
            android:fadingEdge="horizontal"
            >

Итак, помимо определения черного цвета в качестве моего общего фона цвета приложения, нет цветного или стиля. Единственное исключение может быть то, что я использую стандартные идентификаторы Android для Tabhost и TabWidget.

/ Редактировать: вот определение вкладок в методе OnCreate:

th = getTabHost();
th.addTab(th.newTabSpec("shortener").setIndicator(getString(R.string.tabShortenerName),
        res.getDrawable(R.drawable.url_zip)).setContent(R.id.shortenerScrollView));

Класс расширяет табакность.

/ Редактировать 2: Устройство, которое подходит с белым на белом тексте, является HTC Legend Runding Android 2.1 BTW.

/ Edit 3: dream3r был прав. Изменение целевого значения TARGESD TO 4 сделала для меня трюк (раньше, он был установлен на 6)! Я на самом деле не понимаю, но я могу жить с этим сейчас. :)

Вот картина того, как она выглядит сейчас:alt text

Это было полезно?

Решение

У вас есть android:targetSdkVersion установить в вашем AndroidManifest.xml?

Я сделал несколько тестов, используя пример приложения, и у меня такая же проблема, если я установишь targetSdkVersion ценить больше, чем 4.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top