【问题标题】:Why are the preferences in my Android PreferenceFragment indented?为什么我的 Android PreferenceFragment 中的首选项是缩进的?
【发布时间】:2014-11-16 00:17:50
【问题描述】:

当我创建我的 PreferenceFragment 时,首选项类别中的所有首选项都会缩进。

当我在具有默认设置(只是一个 Activity 和 PreferenceFragment)的新项目中执行此操作时,首选项显示得很好(没有缩进)。

public class SettingsFragment extends PreferenceFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.fragment_settings);
    }

}

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

    <PreferenceCategory android:title="Game Setup">

        <CheckBoxPreference
            android:key="checkbox_randomize_opponents"
            android:title="Randomize Opponents"
            android:summary="Randomize opponents after round 1" />

    </PreferenceCategory>
</PreferenceScreen>

【问题讨论】:

  • “较小的应用程序”是什么意思?
  • 您是否尝试过使用 Hierarchy Viewer 调试您的 UI? developer.android.com/tools/debugging/…
  • 我的意思是一个只有一个活动、一个片段和一个偏好片段的应用程序。现在要试试 Daniel,第一次使用 Hierarchy Viewer,谢谢你的提示。
  • 发现它在我的主题中,但仍然不明白。当我对此发表评论时,它起作用了。 @android:color/transparent
  • 此外,当我通过 android:icon 以我的样式设置我自己的图标时,它会将它放在我的偏好之前,这解释了为什么设置透明会“缩进”我的偏好。我想我只是对它为什么会这样做感到困惑,因为我想设置自己的图标,而不是我的偏好。

标签: android preferencefragment


【解决方案1】:

默认情况下,首选项没有图标。图标是可绘制的,当您使用android:icon 属性指定一个时,首选项片段将显示您设置的任何可绘制对象。

android:color/transparent 是一个drawable。将此设置为android:icon,除了偏好片段具有固定图标大小的事实外,将告诉片段显示图标。在这种情况下,它是一个固定尺寸的透明正方形。

尝试将其更改为@android:color/black,而不是“缩进”,您应该会看到一个具有固定尺寸的黑色方块。

如果您不想要图标,您可以将图标属性设置为android:icon="@null" 或完全删除该属性(默认为无图标)。

【讨论】:

  • 感谢 ataulm。我将图标设置为透明的原因是因为我的整个应用程序都在使用主题,我想从操作栏中删除图标。相反,我找到了在不使用我的主应用程序主题的情况下从操作栏中删除图标的适当方法。再次感谢!
  • 不用担心。对于其他访问此内容的人,适当的方法是为您要覆盖其样式的特定活动设置一个主题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
  • 2021-01-12
相关资源
最近更新 更多