При использовании PreferenceScreen
не имеют доступа к этим атрибутам XML. Но то, что вы можете сделать, это добавить этот атрибут к нему:
android:layout="@layout/header_setting"
Затем создайте файл макета XML с именем в данном примере «header_settings» вы можете изменить размеры и отступы, как обычно. Но, применяя идентификаторы к элементам, PreferenceScreen знает, где находятся заголовки или значок.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:padding="0dp"
android:layout_height="match_parent">
<ImageView
android:id="@+android:id/icon"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:layout_width="40dp"
android:layout_height="40dp" />
<TextView android:id="@+android:id/title"
android:layout_marginLeft="80dp"
android:textColor="#000"
android:layout_marginTop="23dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"/>
</LinearLayout>
А теперь вот пример того, как PreferenceScreen должен выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:layout="@layout/pref_screen">
<PreferenceCategory>
<PreferenceScreen
android:icon="@drawable/setting_star"
android:layout="@layout/header_setting"
android:title="Upgrade to Pro!">
</PreferenceScreen>
</PreferenceCategory>
</PreferenceScreen>
Обратите внимание, как у вас есть доступ только к атрибутам: название, резюме и значок. Атрибут layout позволяет вам настроить его на все, что вы хотите сделать. В XML вы должны оставить идентификатор одинаковым, так как это означает, что PreferenceScreen знает, что должен был поместить текст заголовка или изображение значка.
Надеюсь, это поможет!