正如您在图片中看到的那样,左侧需要一些额外的空间。后来我发现这个空间被分配了图标。如何删除此空间?
我试过了preference.setIcon(null);
我也尝试了here给出的解决方案。但没有运气。
我正在使用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>
答案 0 :(得分:2)
构建新的首选项:
new Preference(getPreferenceScreen().getContext());
应该解决问题。
如guillaume-tgl所述,可以找到here的解释。
编辑: 使用新的支持库(28.0.0),您还应该调用:
preference.setIconSpaceReserved(false);
答案 1 :(得分:0)
我认为这是由于您正在使用PreferenceThemeOverlay进行该活动。 您选择的样式采用左侧或右侧的默认填充。
使用此代码
<style name="" parent="PreferenceThemeOverlay">
<item name="android:paddingLeft">0dp</item>
<item name="android:paddingRight">0dp</item>
</style>
答案 2 :(得分:0)
只需在您的XML文件中添加app:iconSpaceReserved="false"
行,现在开始就不会有空格。