第三方开源库:侧边索引栏 WaveSideBar

来源:互联网 发布:托脉林阴囊托淘宝 编辑:程序博客网 时间:2024/06/04 10:24

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

IndexBar

自定义侧边快速索引栏
github地址:IndexBar

0 0