2

Androidでメッセージを表示するために作成したダイアログボックスがあります。基本的に、このようなスクロールビューのテキストビューが含まれています

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



        <TextView 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:id="@+id/about_msg" 
            android:text="@string/about_msg"
            android:autoLink="web"
            android:padding="10dip"
            style="@style/DialogTextSmall" />

</ScrollView>

ご覧のとおり、TextViewにスタイルを適用しました。スタイルは次のようになります。

<style name="DialogTextSmall">
    <item name="android:textSize">@dimen/text_size_small</item>        
</style>

アプリケーションテーマセットはこんな感じ

    <style name="AppTheme"  parent="android:Theme.Light">    

問題:

ICS api-15では、TextViewの白い背景に細かい黒いテキストが表示されます。

問題は、フローズンヨーグルトでダイアログボックスを表示すると、スペースを取ったように見えてもテキストが表示されないように見えることです-テキストの色は背景と同じ(灰色がかった黒)だと思います

黒の背景と白のテキストをハードコーディングすることですばやく修正できることはわかっていますが、TextViewのテキストの色と背景をハードコーディングせずに、プラットフォームのデフォルトの色を表示することはできませんか?

4

2 に答える 2

1

親スタイルを継承してから、変更する値のみを変更できます。XMLを次のように変更してみてください。

<style name="DialogTextSmall" parent="@android:style/Widget.TextView>
    <item name="android:textSize">@dimen/text_size_small</item>        
</style>

継承できるスタイルのリストは、GithubのAOSPソースにあります

EIDT:

デフォルトでは、テキストビューには黒のテキストと透明な背景があるため、テキストビューの背後の背景(これも透明)が黒の場合は、どちらかを設定する必要があります。

于 2012-12-13T05:13:44.813 に答える
1

Textviewスタイルからの継承は実際には役に立ちませんでした。これは少し風変わりな問題であり、これを行う1つの方法があります

http://blog.andromo.com/2011/fixing-text-colours-on-an-alertdialog-when-using-theme-light/

私の場合、私はそれを別の方法で行いました

テーマを解決しましたデフォルトのAndroidテーマから継承しました

<style name="Theme" parent="android:Theme"></style>   
<style name="Theme.AppTheme" parent="@android:style/Theme.Light"/>

<style name="DialogTextSmall">
    <item name="android:textSize">@dimen/text_size_small</item>  
    <item name="android:textColor">@android:color/white</item>              
</style>

このように、フローズンヨーグルト、ジンジャーブレッド以上のすべてのプラットフォームで、ダイアログボックスは黒で、テキストは白です。

于 2012-12-13T14:29:20.250 に答える