【发布时间】:2020-03-28 10:23:03
【问题描述】:
我正在使用 onFling 一次滚动一个项目,并且希望只有一个项目在页面上完全可见,而下一个项目部分可见。
我想要这个,如何在 RecyclerView 中实现。这是适配器代码,只是代替cardView(如图所示),它是imageView:
public class SimpleItemRecyclerViewAdapter extends RecyclerView.Adapter<SimpleItemRecyclerViewAdapter.ViewHolder> {
private final ArrayList<Movie> mValues;
public SimpleItemRecyclerViewAdapter(ArrayList<Movie> items) {
mValues = items;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.movie_list_content, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.mItem = mValues.get(position);
Context context = holder.imageView.getContext();
String logo = mValues.get(position).getPosterPath();
Picasso.with(context).load(logo).into(holder.imageView);
}
@Override
public int getItemCount() {
return mValues.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public final View mView;
public ImageView imageView;
public Movie mItem;
MainActivity mainActivity = new MainActivity();
public ViewHolder(View view) {
super(view);
mView = view;
imageView = (ImageView) view.findViewById(R.id.image_movie_poster);
android.view.ViewGroup.LayoutParams params = imageView.getLayoutParams();
params.height = (int) (mainActivity.height * 0.7);
imageView.setLayoutParams(params);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(), "Clicked", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public String toString() {
return "Blah";
}
}
}
【问题讨论】:
-
我认为您必须找到屏幕高度并根据该高度设置您的卡片高度
-
@RaviGadipudi 我实际上,我尝试了这个库,但无法得到我想要的。我希望只有下一个项目应该可见,而不是前一个项目。但是当我使用这个库时,上一个和下一个项目都变得略微可见。
-
@masoudvali 差不多了,谢谢,伙计。只是一个小问题,当我向下滚动时,应用程序运行正常,但是当我向上滚动时,它显示的是上一项而不是下一项。
-
@BhaveshMisri 你能把你的适配器代码放在这里
标签: android android-recyclerview