java - 尽管滚动,仍更改 ListView 中单个 View 的背景颜色

标签 java android listview

我有一个 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/

相关文章:

android - 在填充 ListView 时,我在 android 的 ListView 中得到重复值

android - ListView 带有节标题问题

java.lang.ArrayIndexOutOfBoundsException : 0 error in Eclipse, 对于使用命令提示符工作的程序?

android - 在某些 Android 4.X 设备上使用 appcompat 库未应用主题

类中的 Java 字段和访问器方法

java - 如何在 Java (Android Studio) 中将带有值的 HTTP Post 请求发送到 Ubidots

android - 为什么我的布局不是密度独立的?

WPf : Binding with more than one property at a time

java - 如何从 Jmeter 执行 java 类

java - 签署 java applet 以在没有 java 警告的情况下工作