【发布时间】:2023-03-28 10:25:01
【问题描述】:
我目前正在编写一个使用带有标题的 ListView 的 Android 应用程序。它工作正常,但不是我想要的。 ListView 中的每个项目的顶部和底部都有 1-2px 分隔符。标题也是如此 - 这就是问题所在。看起来不是很漂亮……
有趣的是系统应用程序(例如设置)没有这样的问题。
这是我的示例适配器:
setListAdapter(new BaseAdapter() {
@Override
public int getCount() {
return 10;
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v = ((LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE))
.inflate(i % 3 == 0 ? R.layout.list_header : android.R.layout.simple_list_item_1, viewGroup, false);
((TextView)v.findViewById(android.R.id.text1)).setText("test");
return v;
}
});
并列出标题布局文件:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello, World"
style="?android:attr/listSeparatorTextViewStyle">
</TextView>
所以问题是:如何摆脱标题和常规项目之间的项目分隔符,就像设置应用程序那样?
编辑: 看完答案后,我想澄清一件事。我确实不想完全删除分隔符。我只想在标题项目和常规项目之间删除它们。此外,像“完全删除分隔符并在某些项目上添加它们”这样的折中措施也不能让我满意。
【问题讨论】:
-
您绝对可以通过使用 Preference API 并为每个标题创建一个
PreferenceCategory来获得这种外观 - 我假设这就是 Settings 应用程序所做的。 -
@Ellis 是的,你是对的 - 尽管还有其他系统应用程序的行为类似。例如,人物应用程序——我不认为它使用 Preference API 来实现这样的外观。 :)
-
好点,我不知道他们会怎么做。也许他们从 Preference API 中提取了一些代码。
标签: java android listview user-interface android-listview