WaveSideBar
参考:
WaveSideBar
效果图
gradle
dependencies {
...
compile 'com.gjiazhe:wavesidebar:1.0.2'
...
}
XML
<com.gjiazhe.wavesidebar.WaveSideBar
android:id="@+id/side_bar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingRight="8dp"
app:sidebar_position="right"
app:sidebar_max_offset="80dp"
app:sidebar_lazy_respond="false"
app:sidebar_text_color="#8D6E63"/>
Attributes | Format | Default | Description |
---|---|---|---|
sidebar_text_color | 字体颜色 | Color.GRAY | text color |
sidebar_max_offset | 偏移量 | 80dp | offset of the selected item |
sidebar_position | 侧边栏位于左侧还是右侧 | right | be placed on left or right in the view |
sidebar_lazy_respond | 懒加载 | false | If true, the listener will not be called until the finger up. If false, the listener will be called when the finger down, move and up. |
方法
WaveSideBar sideBar = (WaveSideBar) findViewById(R.id.side_bar);
sideBar.setTextColor(Color.BLACK);
sideBar.setMaxOffset(100);
sideBar.setPosition(WaveSideBar.POSITION_LEFT);
sideBar.setLazyRespond(true);
监听
WaveSideBar sideBar = (WaveSideBar) findViewById(R.id.side_bar);
sideBar.setOnSelectIndexItemListener(new WaveSideBar.OnSelectIndexItemListener() {
@Override
public void onSelectIndexItem(String index) {
Log.d("WaveSideBar", index);
// Do something here ....
}
});
自定义侧边索引栏内容
sideBar.setIndexItems("あ", "か", "さ", "た", "な", "は", "ま", "や", "ら", "わ");
Lazy respond
false:列表随侧边栏的滚动滚动
sideBar.setLazyRespond(true);
Demo
waveSideBar.setTextColor(Color.BLACK);
waveSideBar.setMaxOffset(200);//字母偏移量
waveSideBar.setPosition(WaveSideBar.POSITION_RIGHT);//侧边栏在左边还是右边
waveSideBar.setLazyRespond(true);//false:列表随侧边栏的滚动滚动
waveSideBar.setOnSelectIndexItemListener(new WaveSideBar.OnSelectIndexItemListener() {
@Override
public void onSelectIndexItem(String index) {
toast.setText(index);
toast.show();
for (int i = 0; i < contacts.size(); i++) {
if (index.equals(contacts.get(i).getIndex())) {
recyclerView.scrollToPosition(i);
//或者
// ((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(i, 0);
return;
}
}
}
});
源码:https://git.oschina.net/libraryDemo/wavesidebardemo01