列表视图项选择



我有一个自定义列表项的ListView。每个列表项由2个线性布局组成,一个紧挨着另一个。LinearLayout 1 | LinearLayout 2 |

我已经为两个LinearLayouts声明了状态列表drawables,在state_pressed中我正在改变LinearLayout的背景。

问题来了——当用户点击LinearLayout2时,只有LinearLayout2的背景应该改变,LinearLayout1的背景应该保持不变。另一方面,当用户点击LinearLayout1时,只有LinearLayout1的背景应该被改变。但是现在,当用户点击两个LinearLayouts中的任何一个时,它们都会改变它们的背景。

点击LinearLayout2的行为应该像onlisttitemclick()一样,而当用户点击LinearLayout1时,应该出现一个对话框(如果这很重要)。

有什么办法可以解决背景变化问题吗?我试过使用可聚焦和可点击的选项。如果我设置clickable=true对两个LinearLayouts, LinearLayout2的子(TextViews)不改变他们的颜色(TextViews应该改变他们的文本颜色)。

谢谢!

这是因为当使用列表视图时,您必须更改XML中的一些标记以使背景透明,以便它能够正确地与您的背景一起工作。

添加到您的ListView XML代码。

android:cacheColorHint="#00000000"

设置ListView的背景为透明。

我认为如果你使用BaseAdapter作为扩展

首先在xml文件中为这两个布局提供唯一的Id,并添加

android:clickable="true"

方法

 public View getView(int position, View convertView, ViewGroup parent) {

当你得到像

这样的视图时
 holder.layout1_name=(LinearLayout)view.findViewById(R.id.layout1);
 holder.layout1_name.setOnClickListener( clicklayout1);
 holder.layout2_name=(LinearLayout)view.findViewById(R.id.layout2);
holder.layout2_name.setOnClickListener( clicklayout2);

添加点击监听器

private OnClickListener clicklayout1 = new OnClickListener() {
    public void onClick(View v) {
         //Do what you want to do here
    }
};

private OnClickListener clicklayout2 = new OnClickListener() {
    public void onClick(View v) {
         //Do what you want to do here
    }
};

也许这对你有帮助

相关内容

  • 没有找到相关文章