ListView 項目包含「管理地址」「幫助與反饋」等文本,整行背景帶點擊反饋,點擊任意位置觸發同一操作。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.item_layout, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// 綁定數據
holder.title.setText(items[position].title);
holder.icon.setImageResource(items[position].iconRes);
// 關鍵:convertView 即根佈局,直接設置監聽
final int pos = position;
convertView.setOnClickListener(v -> {
onItemClick(pos, items[pos]);
});
return convertView;
}
```
android:background="@drawable/item_bg"
class MyAdapter extends RecyclerView.Adapter {
class VH extends RecyclerView.ViewHolder implements View.OnClickListener {
VH(View itemView) {
super(itemView);
itemView.setOnClickListener(this); // 項目根視圖綁定
}
void onClick(View v) {
listener.onItemClick(getAdapterPosition());
}
}
}
clickable="true" + 背景 selector一行代碼 convertView.setOnClickListener(...) 解決整行點擊,配合 Selector 背景,體驗媲美原生按鈕。