绝对实用值得珍藏的自定义侧边索引条控件(类联系人侧边栏)

来源:互联网 发布:安全家庭是什么软件 编辑:程序博客网 时间:2024/05/16 14:31

绝对实用值得珍藏的自定义侧边索引条控件(类联系人侧边栏)

为了代码的可重用性,本人已将自定义侧边索引条控件代码封装在一个Android Library库中,下面是使用文档:
IndexView                                                                                                                         索引控件类
        |---IndexView(Context context, String tag) : constructor                                             构造方法
        |---getIndex() : int                                                                                                      获取当前索引的下标
        |---setIndex(int index) : void                                                                                       设置当前索引的下标
IndexSideBar                                                                                                                     索引侧边栏类
        |---registerTouchCallback(OnIndexSideBarTouch callback) : boolean                           注册触摸事件监听器
        |---unregisterTouchCallback(OnIndexSideBarTouch callback) : boolean                       取消触摸事件监听器
        |---registerIndexChangeCallback(OnIndexSideBarIndexChange callback) : boolean     注册索引改变事件监听器
        |---unregisterIndexChangeCallback(OnIndexSideBarIndexChange callback) : boolean 取消索引改变事件监听器
        |---setTags(String[] indexTagArray) : void                                                                    设置索引关键字数组
        |---setBackgroundColor(String color) : void                                                                 设置侧边栏背景颜色
        |---getCurrentIndex() : int                                                                                           获取当前索引的下标
        |---getIndexViews() : IndexView[]                                                                                获取所有的索引控件
        |---invalidate() : void                                                                                                   刷新控件


使用步骤如下:
1、导入indexsidebar.jar;


2、在xml布局文件中,将IndexSideBar布局到文件,如demo中的设计;

<personal.custom.opensource.indexsidebar.IndexSideBar        android:id="@+id/index_side_bar"        android:layout_width="20dip"        android:layout_height="match_parent"        android:layout_alignParentRight="true"        android:focusable="false"        android:focusableInTouchMode="false">    </personal.custom.opensource.indexsidebar.IndexSideBar>


3、在Activity中找到并初始化IndexSideBar控件,如demo中的设计;

mIndexSideBar = (IndexSideBar)findViewById(R.id.index_side_bar);                mIndexSideBar.setTags(tags);                mIndexSideBar.registerIndexChangeCallback(this);                mIndexSideBar.registerTouchCallback(this);

4、在Activity中实现触摸事件接口和索引改变事件接口,如demo中的设计;

@Override        public void onIndexSideBarTouch(IndexView indexview, MotionEvent event) {                // TODO Auto-generated method stub                switch(event.getAction()){                case MotionEvent.ACTION_DOWN:                        mIndexSideBar.setBackgroundColor(index_pressed_color);                        mIndexText.setVisibility(View.VISIBLE);                        break;                case MotionEvent.ACTION_MOVE:                        break;                case MotionEvent.ACTION_CANCEL:                        break;                case MotionEvent.ACTION_UP:                        mIndexSideBar.setBackgroundColor(index_released_color);                        mIndexText.setVisibility(View.GONE);                        break;                }        }         @Override        public void onIndexChange(IndexView indexview) {                // TODO Auto-generated method stub                mIndexText.setText(indexview.getTag().toString());        }

5、如4步中所操作的,在onIndexSideBarTouch触摸事件回调接口的MotionEvent.ACTION_DOWN和MotionEvent.ACTION_UP的时候做改变侧边栏的背景颜色操作和索引显示TextView可见性设置;在onIndexChange索引改变事件回调接口中做索引显示TextView改变索引值的动作;


效果图如下:



附件:自定义侧边索引条控件


2 0
原创粉丝点击