gpt4 book ai didi

android - 在 PreferenceFragment 中去掉上面的额外填充

转载 作者:搜寻专家 更新时间:2023-11-01 08:43:24 25 4
gpt4 key购买 nike

我正在尝试为我的应用程序构建一个偏好屏幕。我创建了一个名为 SettingsFragment 的类从 PreferenceFragment 延伸.我没有从 xml 加载首选项,因为我需要动态加载一些数据。这就是我以编程方式构建一切的原因。一切都按预期显示。但是顶部有一些额外的填充。见下图:

Some white space above the item "Choose Language"

我不确定为什么会这样。下面是我在 SettingsFragment 中写的代码类(class):

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

PreferenceScreen root = getPreferenceManager().createPreferenceScreen(getActivity());
root.setTitle("Hello World");

PreferenceCategory cat1 = new PreferenceCategory(root.getContext());
root.addPreference(cat1);

ListPreference lang = new ListPreference(root.getContext());
lang.setEntries(new CharSequence[]{"English", "Bangla"});
lang.setEntryValues(new CharSequence[]{"en", "bn"});
lang.setTitle("Choose Language");
lang.setSummary("English");
cat1.addPreference(lang);

CheckBoxPreference check = new CheckBoxPreference(root.getContext());
check.setTitle("Title Check");
cat1.addPreference(check);

setPreferenceScreen(root);
}

仅供引用,我正在使用 NavigationDrawer在我的应用程序中。这个 SettingsFragment当从抽屉中单击导航项时加载。

最佳答案

您正在尝试添加一个没有标题的 PreferenceCategory,这会导致空白。

以下行是问题:

PreferenceCategory cat1 = new PreferenceCategory(root.getContext());
root.addPreference(cat1);

因此,您可以像这样将标题添加到您的偏好类别:
PreferenceCategory cat1 = new PreferenceCategory(root.getContext());
cat1.setTitle("Category");
root.addPreference(cat1);

如果您不想要偏好类别,您可以修改您的代码,如下所示:
    @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

PreferenceScreen root = getPreferenceManager().createPreferenceScreen(getActivity());
root.setTitle("Hello World");

ListPreference lang = new ListPreference(root.getContext());
lang.setEntries(new CharSequence[] { "English", "Bangla" });
lang.setEntryValues(new CharSequence[] { "en", "bn" });
lang.setTitle("Choose Language");
lang.setSummary("English");
root.addPreference(lang);

CheckBoxPreference check = new CheckBoxPreference(root.getContext());
check.setTitle("Title Check");
root.addPreference(check);
setPreferenceScreen(root);
}

关于android - 在 PreferenceFragment 中去掉上面的额外填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30704903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com