java - 带有左右箭头指示器的水平回收器 View

标签 java android android-recyclerview

我正在尝试使用左右箭头指示器实现水平回收 View 。所以会发生什么情况是,如果单击右箭头,下一个项目应该出现,如果单击左箭头,上一个项目应该出现,并且在列表的末尾,左箭头应该消失。我不知道我是如何实现的。有人可以帮我吗?下面是我的 Horizo​​ntal 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是horizo​​ntal list之间的right imageview,rv_horizo​​ntal是horizo​​ntallist 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/

相关文章:

java - Android onClick 自定义PageAdapter

java - Android - ArrayList 和 RecyclerView.Adapter

android - 如何自动使 recyclerview 项目适合屏幕 android 的宽度?

java - 缺少 Artifact com.oracle :ojdbc6:jar:11. 1.0.7.0

java - 是否可以修改 .jar 文件而不创建全新的文件?

java - 语法错误: missing ] after element list in jquery

android - 显示键盘时防止 DialogFragment 调整大小/折叠

java - 融合位置提供程序的最低 android 操作系统级别是多少

android - 使用 Snackbar.Callback 进行撤消删除操作

java - 在 Java 中将 long[64] 转换为 byte[512]?