使用普通的布局文件,我可以像这样设置填充
<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 dp,但填充区仅显示为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">
答案 0 :(得分:1)
使用PreferenceScreen
时,您无权访问这些xml属性。但你可以做的是将此属性添加到它:
android:layout="@layout/header_setting"
然后创建一个在此示例中调用的XML布局文件“header_settings”,您可以正常更改大小和填充。但是将ID应用于元素,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中,你必须保持id的相同,因为PreferenceScreen知道如何放置标题文本或图标图像。
我希望这有帮助!