概述
上一篇解析了AndroidSwipeLayout的普通用法
这一次我们来看一下它在ListView中的使用,同样我们分析官方的sample来学习如何使用
在上一篇忘了给出它的gradle配置
同样看分析布局文件
listview.xml
listview_item.xml
结果这两个布局都非常简单,所以我们就不分析了
那我们就进入代码分析环节
ListViewExample.java
mListView = (ListView) findViewById(R.id.listview);
mAdapter = new ListViewAdapter(this);
这两句进行初始化,ListView,ListViewAdapter(ListViewAdapter我们下面详细解析)
mAdapter.setMode(Attributes.Mode.Single);
这句代码是设置Adapter的模式,Attributes.Mode.Single代表只有一个拖拽打开的时候,其他的关闭,在例子apk中可以体验出
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override public void onItemClick(AdapterView> parent,
View view,
int position,
long id) {
((SwipeLayout)(mListView
.getChildAt(position-mListView
.getFirstVisiblePosition())))
.open(true);}});
设置listview的itemclick监听,当点击的时候,打开swipeLaout
mListView.setOnTouchListener(
new View.OnTouchListener() {
@Override public boolean onTouch(View v, MotionEvent event{
Log.e("ListView", "OnTouch");
System.out.println("OnTouch");
return false;
}});
设置listview的touch监听
mListView.setOnItemLongClickListener(
new AdapterView.OnItemLongClickListener() {
@Override public boolean onItemLongClick(
AdapterView> parent,
View view,
int position,
long id) {
System.out.println("OnItemLongClickListener");
return true; }});
设置ListView的OnItemLongClick的监听
mListView.setOnScrollListener(
new AbsListView.OnScrollListener() {
@Override public void onScrollStateChanged(
AbsListView view,
int scrollState) {
Log.e("ListView", "onScrollStateChanged");
System.out.println("onScrollStateChanged"); }
@Override public void onScroll(AbsListView view,
int firstVisibleItem,
int visibleItemCount,
int totalItemCount) {
System.out.println("onScroll"); }});
设置ListView的OnItemSelected监听
mListView.setOnItemSelectedListener(
new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
Log.e("ListView", "onItemSelected:" + position);
System.out.println("onItemSelected " + position); }
@Override
public void onNothingSelected(AdapterView> parent) {
Log.e("ListView", "onNothingSelected:");
System.out.println("onNothingSelected: "); }});
然后分析ListViewAdapter
~~发现ListViewAdapter继承自BaseSwipeAdapter,
BaseSwipeAdapter继承自BaseAdapter
BaseSwipeAdapter是一个抽象类,子类需要实现
getSwipeLayoutResourceId,generateView,fillValues,getCount, getItem,getItemId函数
*getCount,getItem,getItemId函数实现和BaseAdapter中一样
*getSwipeLayoutResourced需要返回一个Swipelayout的id,便于对其的处理
generateView函数用于生成一个View,和BaseAdapter的getView的用法基本一样,不同的是在这里可以不处理view的复用,因为BaseSwipeAdapter中已经封装了view的复用处理
*fillValues在这个函数中填充数据
下面看例子中的ListViewAdapter的实现
@Override
public int getSwipeLayoutResourceId(int position) { return R.id.swipe;}
返回的是ListView_item.xml中的swipelayout的id
个人感觉简书的markdown太难用了,贴代码不方便直接上图了
Paste_Image.png
Paste_Image.png
ok,listView使用AndroidSwipeLayout结束,下次分析RecyclerViewr使用它
最后
以上就是深情眼睛为你收集整理的android 刷卡布局,刷卡布局效果-开源AndroidSwipeLayout使用解析(二)的全部内容,希望文章能够帮你解决android 刷卡布局,刷卡布局效果-开源AndroidSwipeLayout使用解析(二)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复