[解決済み] Android: セレクターの無効化されたボタンのtextColorが表示されない?
2022-10-14 16:37:49
質問
セレクタでボタンを作りたいのですが、ボタンは以下の状態を持つことができます。
- 有効/無効
- 押された/押されていない
上記のような状態によると ボタンのを操作する必要があります。
- テキストの色
- 背景画像
ボタンは無効化されているので、無効化されたtextColorと無効化されたボタンの背景があるはずです。しかし、私はデフォルトの textColor (スタイルで指定) と背景画像がないのを見ることができます!
以下は、私のセレクタ button_selector.xml です。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false"
android:state_enabled="false"
android:textColor="#9D9FA2"
android:drawable="@drawable/button" />
<item android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/button_pressed"/>
<item android:state_pressed="true"
android:state_enabled="false"
android:textColor="#9D9FA2"
android:drawable="@drawable/button"/>
<item android:state_pressed="false"
android:state_enabled="true"
android:drawable="@drawable/button"/>
</selector>
そして、layout.xmlでのボタンの宣言は以下の通りです。
<Button android:id="@+id/reserve_button"
android:text="@string/reserve_button"
android:layout_width="120dp"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="20dp"
android:paddingRight="15dp"
android:layout_gravity="left"
style="@style/buttonStyle"
android:background="@drawable/button_selector" />
そして最後に、これが私のスタイルです(デフォルトのtextColorが設定されています)。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="buttonStyle">
<item name="android:textStyle">bold</item>
<item name="android:textColor">#282780</item>
<item name="android:textSize">18sp</item>
</style>
</resources>
助けてください!
どのように解決するのですか?
を作成する必要があります。
ColorStateList
を作成して、異なる状態を識別するためのテキスト色を指定する必要があります。
次のようにしてください。
-
に別の XML ファイルを作成します。
res\color
のような名前のファイルを作成します。text_color.xml
.<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- disabled state --> <item android:state_enabled="false" android:color="#9D9FA2" /> <item android:color="#000"/> </selector>
-
あなたの
style.xml
に、そのtext_color.xml
ファイルを以下のように参照します。<style name="buttonStyle" parent="@android:style/Widget.Button"> <item name="android:textStyle">bold</item> <item name="android:textColor">@color/text_color</item> <item name="android:textSize">18sp</item> </style>
これであなたの問題は解決するはずです。
関連
-
[解決済み】Android 8:クリアテキストのHTTPトラフィックが許可されない
-
[解決済み] Androidでファイルをダウンロードし、ProgressDialogで進捗を表示する。
-
[解決済み] Android標準のボタンを色違いに
-
[解決済み] Androidでフローティングアクションボタンの色を変更する
-
[解決済み] Android: ボタンや画像ボタンにテキストと画像を組み合わせて表示する
-
[解決済み] プログラムでソフトキーボードを開く
-
[解決済み] アンドロイドアプリのユーザーデータを消去する
-
[解決済み] Android Navigation Architecture Component - 現在表示されているフラグメントを取得する
-
[解決済み] APKが署名済みかデバッグビルドかを確認するには?
-
[解決済み] アンドロイドボタンセレクター
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] android: imageview の画像を画面に合わせて伸縮させる
-
[解決済み] wrap_contentでRelativeLayoutがフルスクリーンになってしまう
-
[解決済み] FloatingActionButtonのサンプルとサポートライブラリ
-
[解決済み] Android - Snackbar vs Toast - 使い方と違い。
-
[解決済み] APKが署名済みかデバッグビルドかを確認するには?
-
[解決済み] TextView.setTextSizeの挙動がおかしい - テキストビューのテキストサイズを画面ごとに動的に設定する方法
-
[解決済み] BottomNavigationViewを新しいNavControllerで使用する際に、フラグメントを生かす方法はありますか?
-
[解決済み] Android: xml リソースからの整数値
-
[解決済み] Recyclerviewと異なるタイプの行のインフレーションの処理
-
[解決済み] HttpURLConnectionを使ったPOSTによるファイル送信