6

这是我的代码:

<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 元素中指定边距/填充。如何将边距/填充添加到首选项屏幕?

4

2 回答 2

6

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

选项 1: 如果您将您的PreferenceScreenas 片段膨胀为 a FrameLayout,您可以将 dp 值分配给layout_marginToplayout_marginBottom类似的。

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

选项 2: 否则,您可以访问RecyclerView片段中的对象(这包含 PreferenceScreen 的项目),OnViewCreated如下所示:

    // 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)
    }
于 2019-11-03T22:05:12.853 回答
1

不,您不能简单地指定填充/边距。看来您需要指定自定义布局或android:icon="@null"喜欢

Android:如何在偏好中调整边距/填充?

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

Android:如何最大化 PreferenceFragment 宽度(或摆脱边距)?

于 2014-07-20T22:30:52.487 回答