package com.edufound.reader.cusview; import android.annotation.SuppressLint; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.edufound.reader.R; import com.edufound.reader.util.GlideUtils; import com.edufound.reader.util.SizeUtils; import java.util.ArrayList; import java.util.List; /** * 上面一个课程,下面一个list展示所有读过课程的用户 * */ public class ModelViewC extends FrameLayout { Context mContext; private LayoutInflater mLayoutInflater; private onItemClickListener mItemClickListener; public ModelViewC(@NonNull Context context) { super(context); mContext = context; mLayoutInflater = LayoutInflater.from(context); } public ModelViewC(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public ModelViewC(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public void setItemClickListener(onItemClickListener listener) { mItemClickListener = listener; } public void initView(String bgUrl) { LayoutParams layoutParams = new LayoutParams(SizeUtils.dp2px(mContext, 428) , SizeUtils.dp2px(mContext, 598)); this.setLayoutParams(layoutParams); View modelCView = mLayoutInflater.inflate(R.layout.cusview_model_view_c, null); ImageView backgournd = modelCView.findViewById(R.id.model_view_c_background); GlideUtils.loadImageSizeKipMemoryCache(mContext, bgUrl, backgournd); RecyclerView mRecyclerView = modelCView.findViewById(R.id.model_view_c_recyclerview); mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false)); //测试数据 List list = new ArrayList<>(); for (int i = 0; i < 40; i++) { list.add("" + i); } ModelViewCAdapter adapter = new ModelViewCAdapter(mContext, list); mRecyclerView.setAdapter(adapter); addView(modelCView); } public class ModelViewCAdapter extends RecyclerView.Adapter { public List mListData; public ModelViewCAdapter(Context context, List listData) { mContext = context; mListData = listData; } @NonNull @Override public ModelViewCViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new ModelViewCViewHolder(mLayoutInflater.inflate(R.layout.adapter_item_cusview_model_view_c, parent, false)); } @Override public void onBindViewHolder(@NonNull ModelViewCViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.mNickName.setText(mListData.get(position)); holder.mScore.setText(mListData.get(position) + "分数"); if (mItemClickListener != null) { holder.itemView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mItemClickListener.clickItem(holder.itemView, position); } }); } } @Override public int getItemCount() { return mListData.size(); } @Override public int getItemViewType(int position) { return position; } } public interface onItemClickListener { void clickItem(View view, int position); } } class ModelViewCViewHolder extends RecyclerView.ViewHolder { TextView mNickName; TextView mScore; public ModelViewCViewHolder(@NonNull View itemView) { super(itemView); mNickName = itemView.findViewById(R.id.adapter_item_cusview_model_view_c_nickname); mScore = itemView.findViewById(R.id.adapter_item_cusview_model_view_c_score); } }