我正在尝试使用左右箭头指示器实现水平回收 View 。所以会发生什么情况是,如果单击右箭头,下一个项目应该出现,如果单击左箭头,上一个项目应该出现,并且在列表的末尾,左箭头应该消失。我不知道我是如何实现的。有人可以帮我吗?下面是我的 Horizontal Recyclerview 适配器。
public class DialogRecyclerViewAdapter extends RecyclerView.Adapter<DialogRecyclerViewAdapter.ViewHolder> {
Context context;
List<UploadImage> dataAdapters;
private SharedPreferences.Editor mSharedPrefEditor;
ImageLoader imageLoader;
public DialogRecyclerViewAdapter(List<UploadImage> getDataAdapter, Context context){
super();
this.dataAdapters = getDataAdapter;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder Viewholder, int position) {
final UploadImage dataAdapterOBJ = dataAdapters.get(position);
imageLoader = ImageAdapter.getInstance(context).getImageLoader();
imageLoader.get(dataAdapterOBJ.getImage(),
ImageLoader.getImageListener(
Viewholder.VollyImageView,//Server Image
R.drawable.loading_1,//Before loading server image the default showing image.
android.R.drawable.ic_dialog_alert //Error image if requested image dose not found on server.
)
);
Viewholder.VollyImageView.setImageUrl(dataAdapterOBJ.getImage(), imageLoader);
Viewholder.ImageTitleTextView.setText(dataAdapterOBJ.getBrand_name());
Viewholder.garment_price.setText(dataAdapterOBJ.getGarment_price());
Viewholder.VollyImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(MihuChatApplication.getInstance().getContext());
mSharedPrefEditor = sharedPref.edit();
mSharedPrefEditor.putString(Constants.KEY_FROM_CHAT, "fromChatWIndow").apply();
Intent i=new Intent(MihuChatApplication.getInstance().getContext(), DetailsNewActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//PACK DATA TO SEND
i.putExtra("image_title",dataAdapterOBJ.getGarment_name());
i.putExtra("image_url",dataAdapterOBJ.getImage_full());
i.putExtra("desc_text", dataAdapterOBJ.getDesc_text());
//i.putExtra("image_url2", imageLarger);
i.putExtra("image_price", dataAdapterOBJ.getGarment_price());
//i.putExtra("disc_price", disc_price);
//open activity
MihuChatApplication.getInstance().getApplicationContext().startActivity(i);
}
});
}
@Override
public int getItemCount() {
return dataAdapters.size();
}
class ViewHolder extends RecyclerView.ViewHolder{
public TextView ImageTitleTextView, garment_price;
public NetworkImageView VollyImageView ;
public ViewHolder(View itemView) {
super(itemView);
garment_price = (TextView) itemView.findViewById(R.id.garment_price);
ImageTitleTextView = (TextView) itemView.findViewById(R.id.ImageNameTextView) ;
VollyImageView = (NetworkImageView) itemView.findViewById(R.id.VolleyImageView) ;
}
}
提前致谢。
最佳答案
尝试以下操作
这里的img_LeftScroll是left imageview和img_right_scroll是horizontal list之间的right imageview,rv_horizontal是horizontallist view
然后单击 ImageView 执行以下操作,希望它有效
img_LeftScroll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (horizontalLayoutManagaer.findFirstVisibleItemPosition() > 0) {
rv_horizontal.smoothScrollToPosition(horizontalLayoutManagaer.findFirstVisibleItemPosition() - 1);
} else {
rv_horizontal.smoothScrollToPosition(0);
}
}
});
img_right_scroll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
rv_horizontal.smoothScrollToPosition(horizontalLayoutManagaer.findLastVisibleItemPosition() + 1);
}
});
关于java - 带有左右箭头指示器的水平回收器 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47864621/