经常看到一些Contact类的软件软件联系人列表在滚动时会在屏幕中间弹出一个提示信息,就是当前位置的联系人序号之类的,尝试实现了一下
先看效果:
中间弹出的就是一个类似于Overlay的层
布局文件 pop_overlay.xml
在onCreate方法中加载这个View并且通过addView加入到Activity中
然后可以通过实现 ListView.OnScrollListener接口来重写 onScroll 和 onScrollStateChanged方法
这两个方法的调用时机是不同的,可以自己打印看一下
这里显示的是用户中文名的首字母 通过 pingyin4j.jar 来实现的 可以下载来试下 还可以设置一些参数的
下面是调试代码:
下面看弹出菜单的创建
效果如上图,这里就有ListView种的几个点击事件
首先是单击事件 通过setOnItemClickListener 来监听
长按事件 通过 setOnItemLongClickListener 来监听 如果是长按就可以通过setOnCreateContextMenuListener这个事件来创建弹出菜单,注意如果要通过这种方式创建菜单需要在onItemLongClick方法中返回false
通过setOnCreateContextMenuListener事件来监听弹出菜单的点击事件
总之这里有N多的事件
还有一点看一下ListView的每个条目Item实现点击切换底色的效果
如图
点击是底色变成如果的颜色
这个可以在Item的布局文件中实现 来看布局文件 listviewdemoitem.xml
外面是一个LinerLayout 作为底色 防止滚动的时候底色变成黑色
里面用一个RelativeLayout实现了布局调整,它的android:background="@drawable/listview_selected" 属性通过一个Selector
来实现焦点 点击等操作时的背景切换
这里简单实现了一下,还可以有其他的设置 譬如 android:state_focus等