【问题标题】:Programmatically hightlight ListView items以编程方式突出显示 ListView 项
【发布时间】:2016-03-18 16:29:30
【问题描述】:

我想在创建 Activity 时以编程方式突出显示列表视图的第一个元素。

我的 ListView 的高亮选项是:

<item name="android:choiceMode">singleChoice</item>
<item name="android:listSelector">@color/green</item>

我尝试了很多方法来初始化高亮,都不起作用。

- list.setSelection();
- list.setItemChecked();
- list.performItemClick();
- maybe other... 

为什么从代码中突出显示一个 ListView 项目如此痛苦?我应该知道什么?

【问题讨论】:

  • 你也可以试试View child = listView.getChildAt(0)child.requestFocus() 也许
  • 是的,但我正在搜索的是一种清晰的突出显示方式。链接的解决方案(在我看来)不是那么干净。没有?
  • 您想要干净的解决方案还是有效的解决方案? Mylistview.setItemChecked(position, true); 不干净?

标签: android listview


【解决方案1】:

使用自定义适配器并在 onBindViewHolder 用户中作为

if(position == 0){
//set highlight code here
}

【讨论】:

    【解决方案2】:

    请查看this

    并在getView方法中添加

    if(position == 0)
       // set background color for View
    

    【讨论】:

      【解决方案3】:

      将此添加到您的自定义适配器中:

      @Override
          public View getView(int position, View convertView, ViewGroup parent) {
            //Initialize view holder
          switch(position) {
          case 0: {
            //Highlight view
                  break;
               }
                 default: {
                 //Rest of List items
                 }
            }
      

      【讨论】:

      • list.setSelection 不同于绘制自定义背景
      猜你喜欢
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      相关资源
      最近更新 更多