RecyclerView 實現橫向滑動

1、佈局

<android.support.v7.widget.RecyclerView
    android:id="@+id/rv_function_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#ffffff" />

2、代碼

mRvFunctionView = contentView.findViewById(R.id.rv_function_view);
mRvFunctionView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
FunctionViewListAdapter listAdapter = new FunctionViewListAdapter(this);
mRvFunctionView.setAdapter(listAdapter);

其中的adapter和ViewHolder,和豎向的RecyclerView一樣

public class FunctionViewListAdapter extends RecyclerView.Adapter<FunctionViewListItemHolder> {

    private List<ViewItemBean> data;
    private SortItemSelectedListener itemSelectedListener;


    public FunctionViewListAdapter(SortItemSelectedListener galleryItemSelectedListener) {
        this.itemSelectedListener = galleryItemSelectedListener;
    }

    public void setData(List<ViewItemBean> data) {
        this.data = data;
        notifyDataSetChanged();
    }

    @Override
    public FunctionViewListItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_function_view, parent, false);
        return new FunctionViewListItemHolder(view, itemSelectedListener);
    }

    @Override
    public void onBindViewHolder(FunctionViewListItemHolder holder, int position) {
        ViewItemBean item = data.get(position);
        holder.bind(item);
    }

    @Override
    public void onBindViewHolder(FunctionViewListItemHolder holder, int position, List<Object> payloads) {
        onBindViewHolder(holder, position);

    }

    @Override
    public int getItemCount() {
        if (data != null) {
            return data.size();
        }
        return 0;
    }
}

其中的viewholder

public class FunctionViewListItemHolder extends RecyclerView.ViewHolder {

    private SortItemSelectedListener itemSelectedListener;
    private ViewItemBean mediaItem;
    private ImageView photosIcon;
    private TextView itemName;
    private final LinearLayout mItemContent;

    public FunctionViewListItemHolder(View itemView, SortItemSelectedListener itemSelectedListener) {
        super(itemView);
        photosIcon = (ImageView) itemView.findViewById(R.id.iv_grid_item_icon);
        mItemContent = (LinearLayout) itemView.findViewById(R.id.ll_grid_item_content);
        itemName = (TextView) itemView.findViewById(R.id.tv_item_name);
        this.itemSelectedListener = itemSelectedListener;
    }

    public void bind(final ViewItemBean mediaItem) {
        this.mediaItem = mediaItem;
        int type = mediaItem.getType();
        switch (type) {
            case 0:
                photosIcon.setImageResource(R.mipmap.personal_icon_phone);
                itemName.setText(GlobalApplication.getInstance().getResources().getString(R.string.phone_backup));
                break;
            case 1:
                photosIcon.setImageResource(R.mipmap.personal_icon_recycle);
                itemName.setText(GlobalApplication.getInstance().getResources().getString(R.string.recycle_bin));
                break;
            case 2:
                photosIcon.setImageResource(R.mipmap.system_status_icon);
                itemName.setText(GlobalApplication.getInstance().getResources().getString(R.string.system_status_check));
                break;
            case 3:
                photosIcon.setImageResource(R.mipmap.control_panal_icon);
                itemName.setText(GlobalApplication.getInstance().getResources().getString(R.string.control_panel));
                break;
        }
        mItemContent.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (itemSelectedListener != null) {
                    itemSelectedListener.clickItem(mediaItem);
                }
            }
        });
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章