仿微信通讯录索引条
1)添加IndexBar到你的布局文件中。
<ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> <TextView android:id="@+id/previewText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:textSize="40sp" android:textStyle="bold" /> <com.droideep.indexbar.IndexBar android:id="@+id/index_bar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_margin="5dp" app:alphabetPadding="5dp" app:alphabetTextColor="@color/material_blue_grey_800" app:alphabetTextSize="12sp" app:indexBarColorNormal="@android:color/transparent" app:indexBarColorPressed="#56000000" app:indexBarRound="5dp" app:withinIndexBar="true" />
2)在Activity或Fragment中对IndexBar实例化,注册监听器
mIndexBar.setIndexBarFilter(new IndexBar.IIndexBarFilter() { /** * @param sideIndexY 滑动IndexBar的Y轴坐标 * @param position 字母的索引位置 * @param previewText 手指触摸的字母 */ @Override public void filterList(float sideIndex, int position, String previewText) { Integer selection = mSections.get(previewText); if (selection != null) { mPreviewText.setVisibility(View.VISIBLE); mPreviewText.setText(previewText); mListView.setSelection(selection); } else { mPreviewText.setVisibility(View.GONE); } } });
Version 1.1.0添加属性 indexBarSizes,用于设置索引条左右两侧与字母的间距