2015-04-01 2 views
0

С обычным файлом макетом, я могу установить отступ сверху, как этогоPreferenceScreen андроид: paddingTop не работает

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingTop="?attr/actionBarSize" 

> 

Однако с экраном предпочтений, он делает отступ краткость некоторых пикселов (бар действия 168 дпа, но прокладка появляется только 144), любая идея, как исправить этот способ перекрестных устройств. Благодарю.

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingTop="?attr/actionBarSize"> 

ответ

1

При использовании 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 знает, что должен был поместить текст заголовка или изображение значка.

Надеюсь, это поможет!

Смежные вопросы