电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android列表RecyclerView排列布局

瀏覽:101日期:2022-09-23 10:30:41

本文實例為大家分享了Android列表RecyclerView排列布局的具體代碼,供大家參考,具體內容如下

效果圖:

Android列表RecyclerView排列布局

1.要添加相關的依賴

implementation ’androidx.recyclerview:recyclerview:1.1.0’

2.然后布局文件中準備容器

這個標簽是顯示目標容器對象的,其他需求可自定義

<androidx.recyclerview.widget.RecyclerView android: android:layout_width='match_parent' android:layout_height='wrap_content'> </androidx.recyclerview.widget.RecyclerView>

3.制作模板顯示

這里的模板是自定義的,需要什么樣的就怎么布局,這里只是模板,后面做好就會根據模板生成樣式的

Android列表RecyclerView排列布局

4.寫一個適配器,用于加載數據

public class ShiftInForMationAdapter extends RecyclerView.Adapter<ShiftInForMationAdapter.ShiftInForMation>{ private List<ShiftInFormationBean> mListData;//需要加載的數據 private Activity mActivityContext; //上下文 private MyApplication myApplication;//全局Application對象 private OnItemClickListener onItemClickListener;//存放點擊事件的實現類 //存放點擊事件的實現類 public interface OnItemClickListener{ //整條數據的點擊事件 void onItemClick(View view,ShiftInFormationBean shift,int position); //點擊》事件 void onImageClick(View view,ShiftInFormationBean shift,int position); } /** * 構造方法 獲取需要的參數 * @param mListData 需要的數據 * @param mActivityContext 上下文 * @param myApplication app全局變量 */ public ShiftInForMationAdapter(List<ShiftInFormationBean> mListData ,Activity mActivityContext,MyApplication myApplication){ this.mActivityContext = mActivityContext; this.mListData = mListData; this.myApplication = myApplication; } //設置點擊事件方法 public void setItemClickListener(OnItemClickListener onItemClickListener){ this.onItemClickListener = onItemClickListener; } /** * 生命周期方法 創建 * 創建ViewHolder 設置RecyclerViewItem布局 * @param parent * @param viewType * @return */ @NonNull @Override public ShiftInForMation onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_rv_search_result,parent,false); return new ShiftInForMation(view); } /** * 綁定數據 * @param holder 顯示的列表具體信息的布局 * @param position */ @Override public void onBindViewHolder(@NonNull ShiftInForMation holder, int position) { ShiftInFormationBean shift = mListData.get(position); if(shift != null){ //余座剩余小于1 灰色 if(Integer.valueOf(shift.getSearchSupus()) < 1){ //沒有余座,設置為灰色 holder.tvShiftName.setTextColor(mActivityContext.getResources().getColor(R.color.colorGray)); } holder.tvShiftName.setText('班次名稱:' +shift.getShiftName()); //==設置班次名稱 BigDecimal discount = BigDecimal.valueOf(0.98);//默認 if(myApplication.isLogin()){ discount = new BigDecimal(myApplication.getLoginUser().getMemberDiscount()); } //設置事件 if(onItemClickListener != null){ //設置整條數據的點擊事件 holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onItemClickListener.onItemClick(v,shift,position); } }); } } } //告訴RecyclerView有多少條數據 @Override public int getItemCount() { return mListData.size(); } /** * 對外方法,用于分頁添加數據 * @param listAdd 要添加的數據 * @param loadPage 加載的頁數 */ public void addItem(List<ShiftInFormationBean> listAdd){ //如果是第一頁 需要先清空數據列表 this.mListData.clear(); //添加數據 if(listAdd != null){ this.mListData.addAll(listAdd); } //通知RecyclerView進行改變--整體 notifyDataSetChanged(); } //獲取列表數據控件 static class ShiftInForMation extends RecyclerView.ViewHolder{ TextView tvShiftName ;//班次名稱 public ShiftInForMation(@NonNull View itemView) { super(itemView); tvShiftName = itemView.findViewById(R.id.tv_item_result_roomTypeInfo); } }}

5.使用RecyclerView 初始化

//===1、設置布局控制器//=1.1、創建布局管理器LinearLayoutManager layoutManager = new LinearLayoutManager(mActivityContext);//=1.2、設置為垂直排列,用setOrientation方法設置(默認為垂直布局)layoutManager.setOrientation(LinearLayoutManager.VERTICAL);//=1.3、設置recyclerView的布局管理器rvOrderList.setLayoutManager(layoutManager);//==2、實例化適配器//=2.1、初始化適配器List<TicketPurchaseVoBean> mListData = new ArrayList<>();ticketPurchaseAdapter = new TicketPurchaseAdapter(mActivityContext,mListData);//=2.2設置列表項點擊事件//=2.2設置列表項點擊事件ticketPurchaseAdapter.setOnItemClickListener(new TicketPurchaseAdapter.OnItemClickListener() {//方法里的參數都是可以在適配器選擇的 @Override public void onItemClick(View view, TicketPurchaseVoBean data, int position) { //寫需求 } }); //=2.3、設置recyclerView的適配器 rvOrderList.setAdapter(ticketPurchaseAdapter);

到這里就完成了,點擊事件 加載數據的方法里面都是可以按需求自定義的,布局也是可按需要來布局的,這里給的只是一個模板。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 颗粒机,颗粒机组,木屑颗粒机-济南劲能机械有限公司 | 空压机商城|空气压缩机|空压机配件-压缩机网旗下商城 | 远程会诊系统-手术示教系统【林之硕】医院远程医疗平台 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 最新电影-好看的电视剧大全-朝夕电影网 | 耐高温电缆厂家-远洋高温电缆 | 高低温试验房-深圳高低温湿热箱-小型高低温冲击试验箱-爱佩试验设备 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂_帽子厂_浙江高普制帽厂 | 防水套管厂家-柔性防水套管-不锈钢|刚性防水套管-天翔管道 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 太原装修公司_山西整装家装设计_太原室内装潢软装_肖邦家居 | 昆明化妆培训-纹绣美甲-美容美牙培训-昆明博澜培训学校 | 走心机厂家,数控走心机-台州博城智能科技有限公司 | 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 利浦顿蒸汽发生器厂家-电蒸汽发生器/燃气蒸汽发生器_湖北利浦顿热能科技有限公司官网 | FAG轴承,苏州FAG轴承,德国FAG轴承-恩梯必传动设备(苏州)有限公司 | 焊锡,锡膏,锡线,锡条,焊锡膏-绿志岛金属有限公司 | 北京京云律师事务所 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | NBA直播_NBA直播免费观看直播在线_NBA直播免费高清无插件在线观看-24直播网 | 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 电缆接头_防水接头_电缆防水接头_防水电缆接头_上海闵彬 | 耐压仪-高压耐压仪|徐吉电气 | 青岛球场围网,青岛车间隔离网,青岛机器人围栏,青岛水源地围网,青岛围网,青岛隔离栅-青岛晟腾金属制品有限公司 | 希望影视-高清影视vip热播电影电视剧免费在线抢先看 | 工业硝酸钠,硝酸钠厂家-淄博「文海工贸」 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 科箭WMS仓库管理软件-TMS物流管理系统-科箭SaaS云服务 | 培训中心-翰香原香酥板栗饼加盟店总部-正宗板栗酥饼技术 | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | 石油/泥浆/不锈钢防腐/砂泵/抽砂泵/砂砾泵/吸砂泵/压滤机泵 - 专业石油环保专用泵厂家 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 |