3

tl;dr:検索ダイアログでアプリ テーマの白いテキスト スタイルが選択され、検索テキストが非表示になります。

私は些細な問題のように思えることに激しく苦労しています。

私のアプリは暗い背景を使用しています。#EEEEEE を使用して、テキストの色を標準のグレーよりも明るく調整しました。

検索ダイアログ (ハニカム以前) を実装しましたが、うまく機能しますが、検索ダイアログのテキストは同じ #EEEEEE を取得するため、本質的に見えません。検索テキストを長押しすると表示されるコンテキスト メニューでも #EEEEEE が選択されるため、そこにあるテキストも非表示になります。

私は髪を引き裂いていて、髪がなくなっています。

スタイル:

<style name="master" paret="@android:style/Theme.NoTitleBar">
    <item name="android:textColor">#EEEEEE</item>
    <item name="android:windowNoTitle">true</item>        
</style>

マニフェスト:

<application android:icon="@drawable/icon"
             android:label="@string/app_label"
             android:theme="@style/master"
             android:hardwareAccelerated="true"
             android:debuggable="true"> 
4

2 に答える 2

5

この属性android:textColorは、テーマ スタイル内で使用するためのものではなく、主にウィジェットとテキストの外観スタイルで役立ちます。

テーマを通じて一般的なテキストの色を変更したい場合は、代わりandroid:textColor*に属性のファミリーを使用してください。それらはかなりの数あり、異なるビューでは異なる方法で使用されるため、問題を解決するには少し実験 (または Android ソース コードを注意深く調べる) が必要です。android.R.attrのドキュメントには、それらすべてがリストされています。で始まる属性を探しますtextColor...

開始するには、このテーマを試してください。検索ダイアログの色にまったく影響を与えないため、動作が改善されます。ちなみに、親テーマですでに設定されているため、テーマに設定android:windowNoTitleする必要はありません。true

<style name="master" parent="@android:style/Theme.NoTitleBar">
    <item name="android:textColorPrimary">#EEEEEE</item>
    <item name="android:textColorSecondary">#EEEEEE</item>
    <item name="android:textColorTertiary">#EEEEEE</item>
</style>
于 2011-10-20T15:28:13.667 に答える
0

私はあなたと同じ問題に陥りました。解決策を探しましたが、ダイアログの textColor を変更できないようです。私の解決策は、このチュートリアルに基づいてカスタム ダイアログを作成することでした: http://blog.androgames.net/10/custom-android-dialog/

Android ソース コードに基づいてこれを大幅に拡張し、常に同じメソッド名などを使用して少し簡単にしました。

理想的ではありませんが、私が知る限り、それが最良の選択肢です...

編集:あなたの問題には、より簡単な解決策があるかもしれません.textColorをテーマに入れずに、スタイルに入れてください。アプリをどのようにスタイリングしているかはわかりませんが、通常、他のすべてが継承する「マスタースタイル」を作成しています(直接または間接)。次に、そこに textColor を配置して、標準のすべてのダイアログに標準の textColor を保持することができます。

于 2011-10-17T10:25:31.973 に答える