【问题标题】:listview selection color in androidandroid中的listview选择颜色
【发布时间】:2014-06-24 17:20:21
【问题描述】:

在我的列表视图中,当用户长按某个项目时,我会绘制一个自定义操作栏并为用户提供一次删除多个项目的选项。

默认情况下,如果我执行长按操作,我会将选择颜色变为蓝色并消失。

为了克服我尝试添加这样的选择器。

listviewselector.xml

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

  <!-- Selected --> 
  <item 
    android:state_focused="true" 
    android:state_selected="false" 
    android:drawable="@color/RED"/> 

  <!-- Pressed -->
  <item 
    android:state_selected="true" 
    android:state_focused="false"
    android:drawable="@color/BLUE" /> 

</selector> 

如果我设置了这个选择器,当用户长按我可以看到红色,但之后如果用户执行选择,没有颜色会保留在项目上。默认情况下,它看起来是白色的。

我尝试根据以下条件设置背景颜色

   if(mSelectedItemsIds.get(key))
        {
            convertView.setBackgroundColor(REDCOLOR);
        }
        else
        {
            convertView.setBackgroundColor(WHITE);
        }

在这种情况下,如果用户长按,然后如果用户选择多个项目,我会看到红色,默认情况下所有项目的颜色都是白色。但是,如果用户触摸任何项目,默认颜色将是空的,即选择时不会出现颜色。

如何获得默认的白色、点击蓝色和多选红色?

我试过这样 新选择器:

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

  <!-- Selected --> 
  <item 
    android:state_focused="true" 
    android:state_selected="false" 
    android:drawable="@color/RED"/> 

  <!-- Pressed -->
  <item 
    android:state_selected="true" 
    android:state_focused="false"
    android:drawable="@color/WHITE" /> 

</selector> 



 if(mSelectedItemsIds.get(key))
            {
                convertView.setBackgroundColor(mContext.getResources().getColor(R.color.RED));
            }
            else
            {
                convertView.setBackgroundColor(R.drawable.listviewselector);
            }

默认情况下,我将所有项目都设为蓝色。为什么?

【问题讨论】:

  • 尝试将 listselector 设置为由 convertView 膨胀的 xml 文件
  • 请提供任何示例代码.. 谢谢
  • 你发布的listviewselector.xml是样本顺便说一下我也是火影迷
  • 是的,谢谢我太喜欢火影忍者了...谢谢 :).. 但是我尝试过这样的示例。我已经编辑了答案,请看。我得到所有项目的默认蓝色。
  • 嘿,它成功了。我已经发布了答案。感谢您的帮助。火影忍者摇滚 :)

标签: android css listview android-listview colors


【解决方案1】:

我试过这样,它奏效了。

if(mSelectedItemsIds.get(key))
        {
            convertView.setBackgroundColor(mContext.getResources().getColor(R.color.BLUE));
        }
        else
        {
            convertView.setBackgroundColor(android.R.drawable.list_selector_background);
        }

【讨论】:

  • 我也在尝试,好像我不需要这样做。好吧,我是你的jiriya大声笑
  • 嗯,你的评论 +1 :)
猜你喜欢
  • 2011-01-03
  • 2019-01-17
  • 1970-01-01
  • 2016-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-28
  • 1970-01-01
相关资源
最近更新 更多