当前位置: 首页 > news >正文

android搜索框列表布局,流程及主要步骤思维导图

android搜索框列表布局,流程及主要步骤思维导图 

android搜索框列表布局,流程及主要步骤思维导图

activity_coin_search.xml
----------
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/refreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="LinearLayoutManager"
android:background="@color/black" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
------------
其中RecyclerView的id:recycler_view,对应到CoinSearchActivity里面为recyclerView,下划线变驼峰。
然后绑定数据,里面再指定布局item_search_coin.xml
mAdapter = new BaseBindingAdapter(this, mCoinSearchViewModel.data, R.layout.item_search_coin);
mAdapter.setItemPresenter(new SingleItemPresenter());
mBinding.recyclerView.setAdapter(mAdapter);
------------
item_search_coin.xml 里面的数据data命名跟Adapter方法对应
<data>
<variable
name="itemP"
type="xxxActivity.SingleItemPresenter" />
<!-- 数据类型强制命名成data-->
<variable
name="data"
type="xxx.CoinListInfo" />
---------------
BaseBindingAdapter
/**
* 子类除了绑定数据,还要设置监听器等其他操作。
* 可以重写这个方法,不要删掉super.onBindViewHolder(holder, position);
*
* @param holder
* @param position
*/
@Override
public void onBindViewHolder(BaseBindingVH<B> holder, int position) {
holder.getBinding().setVariable(BR.data, mDatas.get(position));
holder.getBinding().setVariable(BR.itemP, ItemPresenter);
holder.getBinding().executePendingBindings();
}
--------------
点击事件传一个内部类进去
/**
* Item点击事件P
*/
public class SingleItemPresenter {
public void onItemClick(CoinListInfo data, int flag) {
if (0 == flag) {
//根据参数做处理
} else {
mCoinSearchViewModel.addFavorites(data);
}
}
}
-------------
item_search_coin.xml 里面不同地方点击传不一样的flag值进去,做不同的处理
<FrameLayout
android:layout_width="match_parent"
android:layout_height="54dp"
android:onClick="@{v->itemP.onItemClick(data,0)}"
android:paddingLeft="24dp"
android:paddingRight="18dp">
<ImageView
android:id="@+id/cb_favourit"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical|right"
android:layout_marginRight="8dp"
android:onClick="@{v->itemP.onItemClick(data,1)}"
android:background="@{data.isFavorite ? @drawable/btn_rating_star_on_pressed_holo_dark:@drawable/btn_rating_star_off_mtrl_alpha}"
android:button="@null" />
</FrameLayout>

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • gcc介绍及安装
  • java 中获得 资源文件方法
  • IF
  • oracle导出、导入的一次实战
  • hadoop集群管理系统搭建规划说明
  • wsdl自动生成Java代码,根据wsdl生成Java代码
  • 企业上云之机房和BGP带宽篇(三)
  • ios导航栏自定义返回按钮后,多出蓝点bug
  • 云盘关闭,教你用蒲公英搭建私有云
  • 显示MYSQL数据库信息
  • 1024程序员节,想讲下我盾这帮安全技术人的故事
  • (二)斐波那契Fabonacci函数
  • 【转】Spring Framework灰度发布
  • 配置linux实现路由功能
  • Algs4-1.2.19字符串解析
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【5+】跨webview多页面 触发事件(二)
  • Bootstrap JS插件Alert源码分析
  • eclipse(luna)创建web工程
  • EventListener原理
  • Git的一些常用操作
  • GraphQL学习过程应该是这样的
  • Laravel5.4 Queues队列学习
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • MySQL数据库运维之数据恢复
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 物联网链路协议
  • Spring第一个helloWorld
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​2020 年大前端技术趋势解读
  • ​如何在iOS手机上查看应用日志
  • !!java web学习笔记(一到五)
  • #AngularJS#$sce.trustAsResourceUrl
  • #每日一题合集#牛客JZ23-JZ33
  • (1)Android开发优化---------UI优化
  • (1)bark-ml
  • (13)DroneCAN 适配器节点(一)
  • (2)Java 简介
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (void) (_x == _y)的作用
  • (WSI分类)WSI分类文献小综述 2024
  • (八)Flink Join 连接
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (十八)SpringBoot之发送QQ邮件
  • (转)mysql使用Navicat 导出和导入数据库
  • (转载)从 Java 代码到 Java 堆
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .gitignore文件忽略的内容不生效问题解决
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET Core中的时区转换问题
  • .NET Remoting学习笔记(三)信道
  • .NET建议使用的大小写命名原则