我是靠谱客的博主 深情眼睛,最近开发中收集的这篇文章主要介绍android 刷卡布局,刷卡布局效果-开源AndroidSwipeLayout使用解析(二),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

上一篇解析了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太难用了,贴代码不方便直接上图了

6e7d19bc629b

Paste_Image.png

6e7d19bc629b

Paste_Image.png

ok,listView使用AndroidSwipeLayout结束,下次分析RecyclerViewr使用它

最后

以上就是深情眼睛为你收集整理的android 刷卡布局,刷卡布局效果-开源AndroidSwipeLayout使用解析(二)的全部内容,希望文章能够帮你解决android 刷卡布局,刷卡布局效果-开源AndroidSwipeLayout使用解析(二)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(79)

评论列表共有 0 条评论

立即
投稿
返回
顶部