Android首选项片段在列表首选项片段中占用图标空间

7

在这里输入图片描述

如图所示,它占用了左侧的一些额外空间。后来我发现这个空间是为图标分配的。如何删除此空间?

我尝试过 preference.setIcon(null);

我还尝试了这里给出的解决方案,但没有成功。

我正在使用compile 'com.android.support:preference-v7:25.1.1'

编辑

这是我的style.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="preferenceTheme">@style/PreferenceThemeOverlayCustom</item>
</style>

<style name="PreferenceThemeOverlayCustom" parent="PreferenceThemeOverlay">
    <item name="preferenceFragmentListStyle">@style/PreferenceFragmentListCustom</item>
</style>

<style name="PreferenceFragmentListCustom" parent="PreferenceFragmentList">

    <item name="android:paddingEnd">0dp</item>
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">0dp</item>
    <item name="paddingStart">0dp</item>
</style>

为什么要踩?有什么原因吗? - mSapps
尝试在Android Studio中使用“设置活动(Settings Activity)”模板开始一个新的示例项目,先验证一下你想要实现的功能是否可行。 - Ultimo_m
如果仍然遇到此问题,我建议将您的preference库降级为implementation 'com.android.support:preference-v7:27.1.1'。这对我有用。我猜在27.1.1和28.0.0之间的某个版本中出现了某种问题。 - Stoyan Ivanov
3个回答

2
构造新的偏好设置应该按照以下方式进行:new Preference(getPreferenceScreen().getContext());这样就可以解决问题了。正如guillaume-tgl所提到的,解释可以在此处找到。 编辑: 如果使用新的支持库(28.0.0),还应该调用:preference.setIconSpaceReserved(false);

1
实际上,这是正确的答案。请参见https://dev59.com/Vo7ea4cB1Zd3GeqPG-L8 - guillaume-tgl
2
你是对的。这就是解决方案:“preference.setIconSpaceReserved(false);” - T-igra

1
只需在您的 XML 文件中添加 app:iconSpaceReserved="false" 行,现在就不会有任何起始空间了。

0

我认为这是因为您在该活动中使用了PreferenceThemeOverlay。 您选择的样式从左侧或右侧获取默认填充。

请使用以下代码

<style name="" parent="PreferenceThemeOverlay">
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">0dp</item>
</style>

你能分享你的样式和布局XML吗?这样我就可以解释了。 - Zakir hussain
尝试使用以下代码: ListView lv = (ListView) findViewById(android.R.id.list); ViewGroup parent = (ViewGroup)lv.getParent(); parent.setPadding(0, 0, 0, 0); - Zakir hussain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接