在 PreferenceFragment 中更改特定 PreferenceScreen 的文本颜色
Changing Text Color of Specific PreferenceScreen in PreferenceFragment
所以目前我有一个 PreferenceFragment,里面有几个偏好:
<PreferenceScreen xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="menu"
android:key="menu">
<PreferenceScreen
android:title="pref1"
android:key="pref1" />
<PreferenceScreen
android:title="pref2"
android:key="pref2" />
</PreferenceCategory>
</PreferenceScreen>
如果我想把"pref2"的颜色改成红色,我该怎么做?我研究了几种不同的解决方案。其中之一是创建自己的布局。所以我试了一下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:textColor="#FF0000"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="pref2"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"/>
</RelativeLayout>
它不起作用,因为边距不对,高度被包裹而不是匹配父级,而且尺寸似乎也不对。有什么建议吗?
万一有人想知道,我发现的 hacky 解决方案是在 TextView 的文本大小、边距和高度中创建一个 RelativeLayout 和硬编码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="pref2"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:textColor="#FF0000"
android:textSize="16sp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/menu_sign_out_text"
android:layout_marginStart="16dp"
android:gravity="center"/>
</RelativeLayout>
所以目前我有一个 PreferenceFragment,里面有几个偏好:
<PreferenceScreen xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="menu"
android:key="menu">
<PreferenceScreen
android:title="pref1"
android:key="pref1" />
<PreferenceScreen
android:title="pref2"
android:key="pref2" />
</PreferenceCategory>
</PreferenceScreen>
如果我想把"pref2"的颜色改成红色,我该怎么做?我研究了几种不同的解决方案。其中之一是创建自己的布局。所以我试了一下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:textColor="#FF0000"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="pref2"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"/>
</RelativeLayout>
它不起作用,因为边距不对,高度被包裹而不是匹配父级,而且尺寸似乎也不对。有什么建议吗?
万一有人想知道,我发现的 hacky 解决方案是在 TextView 的文本大小、边距和高度中创建一个 RelativeLayout 和硬编码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="pref2"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<TextView
android:textColor="#FF0000"
android:textSize="16sp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/menu_sign_out_text"
android:layout_marginStart="16dp"
android:gravity="center"/>
</RelativeLayout>