我有一个 Activity 应该显示一个大的 ListView。现在我想设置单行的背景颜色。我尝试使用 getChildAt 来完成此操作,但随后我只能标记那些可见的行。因此,当列表大于屏幕时,它不再起作用。我无法找到可行的替代方案,因此如果您能给我一些建议,我将非常高兴。
最佳答案
这可以从 ListView 的适配器中实现。在 getView(...)
方法中检查当前项是否符合您的单行条件,如果符合则为当前行设置特定背景颜色,否则设置默认颜色。
类似这样的事情:
public class MyCustomAdapter extends BaseAdapter{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// ....
convertView = inflater.inflate(R.layout.item_layout, null);
// ...
Item item = items.get(position);
if(item.isSingleLine()){
convertView.setBackgroundColor(SINGLE_LINE_BG_COLOR);
}else{
convertView.setBackgroundColor(DEFAULT_BG_COLOR);
}
}
}
关于java - 尽管滚动,仍更改 ListView 中单个 View 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41397836/