如何在首选项屏幕上添加边距/填充

时间:2014-07-20 22:05:34

标签: android android-preferences android-settings

这是我的代码:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <PreferenceCategory android:title="title" >
        <Preference
            android:layout="@layout/custom_preference_layout"
            android:title="@string/settings_rateUsOnGooglePlay" />

    </PreferenceCategory>
</PreferenceScreen>

无法在PreferenceScreen元素中简单地指定边距/填充。 如何将边距/填充添加到首选项屏幕?

2 个答案:

答案 0 :(得分:2)

不,您不能简单地指定填充/边距。您似乎需要指定自定义布局或

中的android:icon="@null"

Android: How to adjust Margin/Padding in Preference?

或者您可以尝试以编程方式设置边距/填充,如

Android: How to maximize PreferenceFragment width (or get rid of margin)?

答案 1 :(得分:0)

11月。 2019年更新: 有一种解决方案与几年前的第一个答案相反。

选项1: 如果要将PreferenceScreen作为片段夸大到FrameLayout中,可以像这样为layout_marginToplayout_marginBottom分配dp值。

        <FrameLayout
        android:id="@+id/fragment_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="64dp" />

选项2: 否则,您可以像这样访问片段的RecyclerView中的OnViewCreated对象(其中包含PreferenceScreen的项目):

    // PreferenceFragment class
    @Override
    public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        final RecyclerView rv = getListView(); // This holds the PreferenceScreen's items
        rv.setPadding(0, 0, 0, 56); // (left, top, right, bottom)
    }