-1

背景セレクターを ViewGroup に設定し、この ViewGroup には子 TextView があり、セレクターを textColor に設定してから、この ViewGroup を押すと、TextView'textColor が押された状態で閉じられます。

4

2 に答える 2

4

これを試して...

1. ViewGroup のバックグラウンド ドローアブルを作成する

1.a. カラーリソース: (colors.xml)

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <color name="colorPrimary">#3F51B5</color>
  <color name="colorPrimaryDark">#303F9F</color>
  <color name="colorAccent">#FF4081</color>

  <color name="blue_grey_200">#B0BEC5</color>
</resources>

1.b. ViewGroup 通常状態: (drawable_viewgroup_normal.xml)

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/transparent" />
<stroke
    android:width="1dp"
    android:color="@color/blue_grey_200" />
</shape>

1.c. ViewGroup が押された状態: (drawable_viewgroup_press.xml)

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/blue_grey_200" />
<stroke
    android:width="0.7dp"
    android:color="@color/blue_grey_200" />
</shape>

1.d. ViewGroup セレクターの背景: (selector_viewgroup.xml)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/drawable_viewgroup_press" android:state_pressed="true"/>
  <item android:drawable="@drawable/drawable_viewgroup_press" android:state_focused="true"/>
  <item android:drawable="@drawable/drawable_viewgroup_normal"/>
</selector>

2. ViewGroup の子 (TextView) のセレクター テキストの色を作成するselector_viewgroup_child_textcolor.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_focused="true" android:state_pressed="false" android:color="@color/colorAccent"/>
  <item android:state_focused="true" android:state_pressed="true" android:color="@android:color/white"/>
  <item android:state_focused="false" android:state_pressed="true" android:color="@android:color/white"/>
  <item android:color="@color/colorAccent"/>
</selector>

3. セレクター ドローアブルを ViewGroup とその子に適用する

<LinearLayout
    android:id="@+id/l1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:background="@drawable/selector_viewgroup"
    android:clickable="true"
    android:padding="@dimen/margin8">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Hello World!"
        android:textColor="@drawable/selector_viewgroup_child_textcolor" />
</LinearLayout>

4. 結果

通常の状態:

通常状態

押された状態:

押された状態

于 2016-03-18T05:18:46.603 に答える
0

テキストビューの色がセレクターファイル「selector_viewgroup_child_textcolor.xml」に関連しているためです。プレス状態と通常の状態を設定しました。テキストビューの色を不変にしたい場合は、テキストカラーがセレクターファイルを参照していないことを確認してください

于 2016-03-18T09:20:10.690 に答える