【发布时间】:2014-10-21 11:55:30
【问题描述】:
我有一个列表视图,它的每一行都由几个文本组成。其中一个是组名,当它与以前的不同时,我会显示该组名。同时,我想创建一个空间来分隔类别以获得最佳外观。所以我在我的 baseAdapter 的 getView 方法中添加了一个填充,如 ** ** 之间所示:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(
R.layout.ir_item, parent, false);
}
TextView group = ViewHolder.get(convertView, R.id.data1);
TextView range = ViewHolder.get(convertView, R.id.data2);
TextView assignment = ViewHolder.get(convertView, R.id.data3);
LinearLayout linear = ViewHolder.get(convertView, R.id.line); //it's the linearlayout parent of rows
HashMap<String, String> item = getItem(position);
if (position > 0) {
if (item.get(GROUP).equals(getItem(position - 1).get(GROUP))) {
group.setText("");
} else {
**linear.setPadding(0, 10, 0, 0);**
group.setText(item.get(GROUP));
}
} else {
group.setText(item.get(GROUP));
}
range.setText(item.get(RANGE) + " (" + item.get(INTENSITY) + ")");
assignment.setText(item.get(ASSIGNMENT));
return convertView;
}}
它适用于第一页,但是当我滚动列表时,或者我回来时......在所有行上都创建了填充,并且我失去了空间效果。然而,组名并没有写在任何地方,尽管代码行出现在相同的条件下。
我找不到问题出在哪里,你能帮帮我吗?
非常感谢。
【问题讨论】:
标签: android listview row adapter space