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

本文介绍WaveSideBar组件的使用方法,包括如何在项目中引入依赖、XML布局配置、属性设置及监听事件实现等。此外还提供了示例代码,帮助开发者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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"/>
AttributesFormatDefaultDescription
sidebar_text_color字体颜色Color.GRAYtext color
sidebar_max_offset偏移量80dpoffset of the selected item
sidebar_position侧边栏位于左侧还是右侧rightbe placed on left or right in the view
sidebar_lazy_respond懒加载falseIf 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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值