Android: علامة تبويب مميزة لـ TabWidget غير قابلة للقراءة على HTC Sense

StackOverflow https://stackoverflow.com/questions/3647821

سؤال

في تطبيق Android الخاص بي ، أستخدم tabWidget دون أي تخصيص خاص. أود أن يعتني Android بالمظهر المحدد ، والذي يعمل بشكل جيد إذا قارنت Android 1.6 مع 2.1 على سبيل المثال. من خلال استخدام tabWidget ، يؤدي نفس الرمز إلى أشكال مختلفة من علامات التبويب لأن SDK يحدد كيفية رسمه. إليكم كيف يبدو على 2.1 على سبيل المثال:

alt text

لذا ، فإن علامة التبويب المميزة رمادية والخط أبيض ويمكنك قراءتها جيدًا.

ولكن ، إذا كان لديك شعور HTC ، يبدو أن هذا:alt text

الصورة ليست جيدة ، ولكن صدقني فقط أنه نص أبيض على خلفية بيضاء ليس من السهل القراءة ...

أسئلتي هي:

1) لماذا يقوم Android بإنشاء TabWidget مع White on White Text؟ لم حددت أبدًا إما لون النص أو لون الخلفية ، لذلك من المفترض أن يختار النظام ألوانًا معقولة.

2) أفترض أن TabWidgets الأخرى تبدو على ما يرام على HTC Sense ، لأنه وإلا فإنها ستكون مشكلة كبيرة وشائعة. فلماذا يعاني TabWidget من هذه المشكلة وليس الآخرين.

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 تعمل بنظام Android 2.1 BTW.

/تحرير 3: Dream3r كان على حق. تغيير قيمة TargetSDK إلى 4 فعل الخدعة بالنسبة لي ، أيضا (من قبل ، تم تعيينه على 6)! أنا لا أحصل عليه حقًا ، لكن يمكنني العيش مع ذلك الآن. قون

هذه صورة كيف تبدو الآن:alt text

هل كانت مفيدة؟

المحلول

هل تمتلك android:targetSdkVersion تعيين في الخاص بك AndroidManifest.xml?

لقد أجريت بعض الاختبارات باستخدام نموذج التطبيق ولدي نفس المشكلة إذا قمت بتعيين targetSdkVersion لتقييم أكبر من 4.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top