我希望我的应用程序有一个用户可以滚动的卡片列表,单击操作等.具体来说,我想android.design.CardView
在支持库中使用该类.
据我所知,有关SO的问题,但它并没有解决我的问题.关于这个问题的解决方案我要么说要使用列表并在每个项目中添加类似卡片的背景,请简要提及CardView
(即仅提及它们的存在)或依赖第三方库.
我想知道是否有可能只使用核心android API和支持库来自动垂直滚动卡片列表RecyclerView
.(但是删除任何使它看起来像列表的分隔符或其他东西都在卡片后面)这可能吗?
基于你希望有一个列表CardView
...你可以在你的row_layout.xml中定义这样的代码:
然后你的布局包含RecyclerView:
在您的适配器CardView
中可以定义为根元素:
public class Adapter extends RecyclerView.Adapter{ List stocks; public Adapter(List stocks){ this.stocks = stocks; } @Override public StockViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_layout, parent, false); StockViewHolder pvh = new StockViewHolder(v); return pvh; } @Override public void onBindViewHolder(StockViewHolder holder, int position) { holder.stockName.setText(stocks.get(position).getName()); holder.stockPrice.setText(stocks.get(position).getPrice()); Ion.with(holder.stockPhoto).error(R.mipmap.ic_launcher).load(stocks.get(position).getPhotoId()); } @Override public int getItemCount() { return stocks.size(); } @Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { super.onAttachedToRecyclerView(recyclerView); } public static class StockViewHolder extends RecyclerView.ViewHolder { CardView cv; TextView stockName; TextView stockPrice; ImageView stockPhoto; StockViewHolder(View itemView) { super(itemView); cv = (CardView)itemView.findViewById(R.id.cv); stockName = (TextView)itemView.findViewById(R.id.person_name); stockPrice = (TextView)itemView.findViewById(R.id.person_age); stockPhoto = (ImageView)itemView.findViewById(R.id.person_photo); } } }
这会给你这个结果:
这是CardView
s 的实际列表.
希望能帮助到你!