Android PreferenceScreen在左侧显示了很多空白

时间:2019-03-13 23:28:31

标签: android android-layout fragment settings android-preferences

您好,我有以下扩展PreferenceFragmentCompat的片段:

class SettingsFragment : PreferenceFragmentCompat(){
    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        Log.d(TAG, "onCreatePreferences")
        addPreferencesFromResource(R.xml.app_preferences)
    }
...
}

xml 如下:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory
        android:title="Catogeory 1">

        <SwitchPreference
            android:key="key1"
            android:title="Switch Preference"
            android:summary="Switch Summary"
            android:defaultValue="true" />

        <EditTextPreference
            android:key="key2"
            android:title="EditText Preference"
            android:summary="EditText Summary"
            android:dialogMessage="Dialog Message"
            android:defaultValue="Default value" />
        <CheckBoxPreference
            android:key="key3"
            android:title="CheckBox Preference"
            android:summary="CheckBox Summary"
            android:defaultValue="true"/>
    </PreferenceCategory>

</PreferenceScreen>

在预览中看起来不错,但是在我的模拟器上,左侧有很多填充,如下所示:

enter image description here

我如何做到这一点,使文本更靠近屏幕边缘

谢谢

2 个答案:

答案 0 :(得分:1)

app:iconSpaceReserved="false"

xml中使用此属性。

答案 1 :(得分:1)

首先,这个问题是Android: How to remove margin/padding in Preference ScreenPreferenceFragmentCompat has padding on PreferenceCategory that I can't get rid of的重复。

正如Sah Rishabh所说,您可以通过添加来解决此问题

app:iconSpaceReserved="false"

到xml中的每个首选项标签

但是,这不是一个好的解决方案,因为它不适用于首选项类别(标题仍然有点太正确了),并且需要在每个标签中添加一些内容。

因此,最佳解决方案描述为herehere(相同的答案),

  

创建包含以下内容的res/values-sw360dp-v13/values-preference.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
    <bool name="config_materialPreferenceIconSpaceReserved" tools:ignore="MissingDefaultResource,PrivateResource">false</bool>
    <dimen name="preference_category_padding_start" tools:ignore="MissingDefaultResource,PrivateResource">0dp</dimen>
</resources>