0

我有一个带有自定义项目布局的 Android ListView:

|              ...              |
+-----------------+-------------+
|  Labels & Info  |  ImageView  |
+-----------------+-------------+
|              ...              |

我希望在单击列表项的左侧(标签和信息)或右侧(ImageView)时发生两种不同的操作。此外,被按下的项目部分应显示准确的触摸反馈(因为它会通过单击突出显示 ListView 项目)。

我知道如何为特定视图实现 OnClickListeners,但我真正想要的是将列表项本身拆分为两个可点击区域。

我怎样才能做到这一点?

编辑:这是一张应该更准确地描述我想要的图像:

在此处输入图像描述

底部项目中的红色和绿色区域说明了单击时应可单击和突出显示的两个区域。

4

2 回答 2

0

您可以在布局中放置两个与绿色区域和红色区域匹配的 TextView,并为它们设置点击侦听器,并将文本设置为“”。这意味着您有 5 个不同的部分,3 个要向用户展示的部分和 2 个用于点击侦听器的部分,我希望您能理解我的话。

于 2013-11-03T16:37:19.163 回答
0

要实现这一点,您必须编辑适配器的 getView() 函数。将 onClickListeners 添加到其中的相应 ImageView 和 TextView 中。例如:

@Override
  public View getView(int position, View convertView, ViewGroup parent) {
    View rowView = convertView;
    if (rowView == null) {
      LayoutInflater inflater = context.getLayoutInflater();
      rowView = inflater.inflate(R.layout.rowlayout, null);
      ViewHolder viewHolder = new ViewHolder();
      viewHolder.text = (TextView) rowView.findViewById(R.id.TextView01);
      viewHolder.image = (ImageView) rowView
          .findViewById(R.id.ImageView01);
      rowView.setTag(viewHolder);
    }

    ViewHolder holder = (ViewHolder) rowView.getTag();
    //Add your onClickListeners here
    //holder.text.setOnClickListner(new OnClickListner...
    //holder.iamge.setOnClickListner(new OnClickListner...

    return rowView;
  }
于 2013-11-03T13:48:43.933 回答