`
abc20899
  • 浏览: 908937 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中实现ListView滑动首字母提示 .

 
阅读更多
其中overlay是提示字母View的布局文件,如下:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="100dp" android:maxWidth="100dp" android:gravity="center"
android:textSize="55sp" android:textColor="#ffffffff"
android:background="@drawable/blue_bg" android:padding="10dp"
android:layout_margin="8dp" android:visibility="invisible" />

MainActivity中,onCreate方法如下:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

mWindowManager = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mStrings));
getListView().setOnScrollListener(this);
LayoutInflater inflate = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mDialogText = (TextView) inflate.inflate(R.layout.overlay, null);
mDialogText.setVisibility(View.INVISIBLE);
mHandler.post(new Runnable() {

public void run() {
mReady = true;
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
mWindowManager.addView(mDialogText, lp);
}});
}

首先像ListView中填充数据:

setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mStrings));

加载首字母提示的View布局:

LayoutInflater inflate = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mDialogText = (TextView) inflate.inflate(R.layout.overlay, null);
mDialogText.setVisibility(View.INVISIBLE);
mHandler.post(new Runnable() {

public void run() {
mReady = true;
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
mWindowManager.addView(mDialogText, lp);
}});

注册滑动监听事件:

getListView().setOnScrollListener(this);

在滑动时间onScroll方法中,修改展示首字母提示:

if (mReady) {
char firstLetter = mStrings[firstVisibleItem].charAt(0);
if (!mShowing && firstLetter != mPrevLetter) {

mShowing = true;
mDialogText.setVisibility(View.VISIBLE);
}
mDialogText.setText(((Character)firstLetter).toString());
mHandler.removeCallbacks(mRemoveWindow);
mHandler.postDelayed(mRemoveWindow, 1000);
mPrevLetter = firstLetter;
}

mHandler.postDelayed(mRemoveWindow, 1000);

延迟一秒执行.项目源码见:http://bigcateasymorse.googlecode.com/svn/trunk/listview_fristletter/
分享到:
评论

相关推荐

    ListView滑动时首字母提示

    ListView列表,按首字母排列,向下滑动当首字母变化时显示当前首字母

    安卓源码包android web应用OCR图像识别listview相关EditText输入框Launcher 桌面45个合集

    [四次元]Android中实现Iphone样式的AlertDialog.zip [四次元]Android实现Windows风格的Dialog.zip [四次元]dlna库源代码包.zip [四次元]gridview分页效果.zip [四次元]HerilyAlertDialog完全自定义的Dialog.zip [四...

    联系人分章节显示、ListView快速滑动显示联系人首字母、附带字母表快速查找的例子

    联系人分章节显示、ListView快速滑动显示联系人首字母、附带字母表快速查找的例子

    Android ListView快速筛选联系人

    Android ListView上下快速滑动,列表根据右边的滑动区域的英文字母快速准确的筛选出首字母相同的联系人列表,搜索输入框根据输入的文字自动匹配并显示联系人列表。

    Android之实现系统联系人软件的分组和字母表导航效果

    联系人分章节显示、ListView快速滑动显示联系人首字母、附带字母表快速查找的例子, 查阅网络资源,实现方式都是比较复杂,尤其有些还实现了SectionIndex接口,很多人不怎么能理解,研究后发现此种类型的例子没必要...

    Android例子源码通讯录联系人字母排序索引A-Z.zip

    主要实现功能: 1、获取手机通讯录内容已列表的形式展示。 2、屏幕右边有26字母的标杆,触摸标杆的任一字母,该字母...4、滑动该listview,当活动结束时,屏幕最上面的联系人的首字母对应的字母标杆颜色、字体改变。

    iPhone风格大全

    5、android快速滑动列表+首字母提示; 6、android下拉刷新仿网易新闻; 7、cwac-merge-master; 8、PickerView-android仿iphone精美效果; 9、qq群组向上滚动DemoSectionListView_Plus-2013-9-11; 等9个例子。 物超...

    Android例子源码通讯录联系人字母排序索引A-Z

    主要实现功能: 1、获取手机通讯录内容已列表的形式展示。 2、屏幕右边有26字母的标杆,触摸标杆的任一字母,该...4、滑动该listview,当活动结束时,屏幕最上面的联系人的首字母对应的字母标杆颜色、字体改变。 

    仿手机通讯录

    主要实现功能:1、获取手机通讯录内容已列表的形式展示。2、屏幕右边有26字母的标杆,触摸标杆的任一字母,该字母颜色...4、滑动该listview,当活动结束时,屏幕最上面的联系人的首字母对应的字母标杆颜色、字体改变。

    Android代码-PinnedHeaderLetterListView

    PinnedHeaderLetterListView提供一个类似通讯录列表的组件,具备两个主要功能点,1、滑动时首字母会定在顶端,2、右侧有个字母列表,滑动这个列表时,显示选中的字母,同时将列表定位到相应的位置上 效果图 项目...

    安卓 仿今日头条 中级版 完美获取数据,并展示

    (3)城市选择列表中的城市信息按照首字母进行排列,并且带有悬浮效果 注意:(1)通过重写GridView。(2)和(3)通过重写ListView,之后通过接口判断是否在最最上方了,进行状态变更,DEMO的代码中可以清晰看懂 ...

Global site tag (gtag.js) - Google Analytics