gpt4 book ai didi

android - RecyclerView onClick 无法正常工作?

转载 作者:太空宇宙 更新时间:2023-11-03 11:38:59 24 4
gpt4 key购买 nike

我在 fragment 中使用 RecyclerView 以网格格式显示带有文本的图像,Recycler View grid_item.xml 如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

<android.support.v7.widget.CardView
android:id="@id/card_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_margin="@dimen/card_margin_grid"
card_view:cardCornerRadius="@dimen/card_album_radius">

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<ImageView
android:id="@id/thumbnail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="?selectableItemBackgroundBorderless"
android:clickable="true"
android:scaleType="fitCenter" />

<TextView
android:id="@id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/thumbnail"
android:layout_margin="@dimen/album_title_padding"
android:textColor="@color/album_title"
android:textSize="@dimen/album_title" />
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>

我正在使用适配器在 RecyclerView 中填充数据,代码是:

public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> {

private ArrayList<Movie> movies;
private Context context;

public DataAdapter(Context context, ArrayList<Movie> movies) {
this.movies = movies;
this.context = context;
}

public void addItems(ArrayList<Movie> movies) {

this.movies.addAll(movies);

}

@Override
public DataAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recycler_view_grid_item, viewGroup, false);

return new ViewHolder(view);
}

@Override
public void onBindViewHolder(DataAdapter.ViewHolder viewHolder, int i) {

viewHolder.title.setText(movies.get(i).getTitle());
Picasso.with(context).load(movies.get(i).getImage_url_medium()).placeholder(R.drawable.placeholder).into(viewHolder.thumbnail);
}

@Override
public int getItemCount() {
return movies.size();
}



public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView title;
private ImageView thumbnail;

public ViewHolder(View view) {
super(view);

title = (TextView) view.findViewById(R.id.title);
thumbnail = (ImageView) view.findViewById(R.id.thumbnail);
view.setOnClickListener(this);
}

// Handles the row being being clicked
@Override
public void onClick(View view) {
int position = getAdapterPosition(); // gets item position
if (position != RecyclerView.NO_POSITION) { // Check if an item was deleted, but the user clicked it before the UI removed it
Movie movie = movies.get(position);
// start detail activity
Intent i = new Intent(context, MovieDetail.class);
i.putExtra(Constants.MOVIES_OBJECT, movie);
context.startActivity(i);
}
}
}


}

我的问题是点击监听器只在 TextView 上工作,而不是在图像上工作,尽管我已经在包含图像和文本的整个 View 上设置了点击监听器。我的实现有问题吗?

最佳答案

尝试将 android:focusableInTouchMode="false" 设置为您的 ImageView 。并删除 android:clickable="true" 或将其设置为 false

关于android - RecyclerView onClick 无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41033834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com