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>
android搜索框列表布局,流程及主要步骤思维导图的更多相关文章
- 如何使用MindManager更改思维导图布局
思维导图可以帮您直观地捕捉想法和信息,并将其组织起来,进一步创建行动计划,思维导图软件MindManager不仅可以帮您分析问题.使用头脑风暴得出解决方案,还可以规划复杂的项目.下面是MindMana ...
- 一篇文章一张思维导图看懂Android学习最佳路线
一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...
- 思维导图软件MindManager for Windows中如何修改思维导图布局
MindManager for Windows是 Mindjet公司旗下应用于Windows桌面系统的一款思维导图软件,目前已经更新到了v14版本.对于很多刚开始使用MindManager for W ...
- 第一行代码 Android 思维导图
第一行代码 Android 思维导图
- Mindjet MindManager 思维导图软件-使用思维导图跟踪调用流程,绘制软件框架
思维导图.据说是每一个产品经理必备的软件.假设你阅读大型源码.使用思维导图跟踪调用流程,绘制软件框架将会很方便. 特点:没什么好说的.用过的都说好. 软件截图: 下载:http://www.mindm ...
- 33、搜索旋转排序数组 | 算法(leetode,附思维导图 + 全部解法)300题
零 标题:算法(leetode,附思维导图 + 全部解法)300题之(33)搜索旋转排序数组 一 题目描述! 题目描述 二 解法总览(思维导图) 三 全部解法 1 方案1 1)代码: // 方案1 & ...
- 35、搜索插入位置 | 算法(leetode,附思维导图 + 全部解法)300题
零 标题:算法(leetode,附思维导图 + 全部解法)300题之(35)搜索插入位置 一 题目描述 二 解法总览(思维导图) 三 全部解法 1 方案1 1)代码: // 方案1 "无视要 ...
- Android搜索框以及内容提供器
先看结果: 相关的官方文档在这里:Creating a Search Interface Android官方提供了两种方式: 弹出一个Dialog,覆盖当前的Activity界面 在AppBar中扩展 ...
- android开发 RecyclerView 列表布局
创建一个一行的自定义布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns ...
随机推荐
- dispatch_queue_set_specific可重入的gcd
有时候我们很希望知道当前执行的queue是谁,比如UI操作需要放在main queue中执行.如果可以知道当前工作的queue是谁,就可以很方便的指定一段代码操作在特定的queue中执行.这种做法让G ...
- ios多播委托
在现实中回调的需求也分两种 一对一的回调. 一对多的回调. 对于一对一的回调,在IOS中使用delegate.block都能实现.而一对多的回调基本就是通知中心了. 假如现在有一个需求,我们以图片下载 ...
- python安装提示ImportError: No module named web
今天在开发一个项目时出现错误,重新安装了一下python和yum,然后面板就无法启动了,提示需要安装web依赖,但是具体是哪个web源呢,pip install web不行 Traceback (mo ...
- pip批量安装和卸载package
创建文件 将要安装或卸载的包按指定格式保存到文件中,这里以 packages.txt 为例,格式如下: Flask_Script==2.0.6 alembic==1.0.5 SQLAlchemy==1 ...
- Oracle(2)之多表查询&子查询&集合运算
多表查询 笛卡尔积 同时查询多张表时,每张表的每条数据都要和其它表的每条数据做组合.如下栗子,我们发现产生的总记录数是 56 条,还发现 emp 表是 14 条,dept 表是 4 条,56 条正是 ...
- 建模:通过ES平铺关系型数据库多表的数据
问:建模要从一个限界上下文中来建模,是否可以简单的把几张表进行笛卡尔乘积方式的平铺? 答:不能,原因之一,数据量会急剧增长:原因之二,这样的平铺是毫无意义的,必须要定义一个维度,在这个维度上根据需求约 ...
- jenkins基于gradle打包说明
gradle.proerties文件中添加下面配置会更快 org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfM ...
- CentOS7安装Jdk1.8
一.前期准备 a) 首先从官网上下载Jdk 8 for Linux x64到window下. b) 我这边用的最小安装,所以没有安装centos自带的openjdk,如果你安装时,不是最小安装的话,可 ...
- 高危Windows系统 SMB/RDP远程命令执行漏洞 手工修复办法
1.Windows Update更新补丁方式: 更新方法:点击“开始”->“控制面板”->“Windows Update” ,点击“检查更新”-“安装更新”: 2.检查安装结果: 点击“ ...
- mac 下 IntelliJ IDEA 快捷键
编辑器 Cmd + N // 代码生成,getter, setter Opt + Enter // 导入类或者注解