ListView增强组件QuickScroll
来源:互联网 发布:app下载排名 优化 编辑:程序博客网 时间:2024/06/07 17:11
QuickScroll使用步骤
国际惯例,先看代码。
public class Main2Activity extends AppCompatActivity { private ArrayList<String> mDatas; private ListView mListView; private MyAdapter mMyAdapter; private static final int CORAL = Color.parseColor("#f0f76541"); private static final int CORAL_DARK = Color.parseColor("#e0e55b3c"); private static final int CORAL_HANDLE = Color.parseColor("#80f76541"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); initData(); mListView = (ListView) findViewById(R.id.lv); mMyAdapter = new MyAdapter(mDatas, this); mListView.setAdapter(mMyAdapter); QuickScroll quickscroll = (QuickScroll) findViewById(R.id.quickscroll); assert quickscroll!=null; //样式一 跟随式 quickscroll.init(QuickScroll.TYPE_INDICATOR_WITH_HANDLE, mListView, mMyAdapter, QuickScroll.STYLE_HOLO); quickscroll.setIndicatorColor(CORAL, CORAL_DARK, Color.WHITE); quickscroll.setHandlebarColor(CORAL, CORAL, CORAL_HANDLE);// quickscroll.setFixedSize(1);// quickscroll.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 48); //样式二 弹出式// quickscroll.init(QuickScroll.TYPE_POPUP, mListView, mMyAdapter, QuickScroll.STYLE_NONE);// quickscroll.setFixedSize(2);// quickscroll.setPopupColor(QuickScroll.BLUE_LIGHT, QuickScroll.BLUE_LIGHT_SEMITRANSPARENT, 1, Color.WHITE, 1); } private void initData() { mDatas = new ArrayList<>(); for (int i = 0; i < 100; i++) { mDatas.add(i + " - ANDROID"); } }}============华丽的分割线,下面是Adapter=============public class MyAdapter extends BaseAdapter implements Scrollable { private ArrayList<String> mDatas; private Context mContext; public MyAdapter(ArrayList<String> datas, Context context) { mDatas = datas; mContext = context; }//基本方法...老三样,忽略之 @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(android.R.layout.simple_list_item_1, null); } ((TextView) convertView.findViewById(android.R.id.text1)).setText(mDatas.get(position)); return convertView; } /** * 滑动时返回的预览文字(索引) * * @param childposition * equals childposition if used with ExpandableListView, position otherwise. * @param groupposition * @return */ @Override public String getIndicatorForPosition(int childposition, int groupposition) { Log.i(TAG, "getIndicatorForPosition: childposition = "+childposition);// Log.i(TAG, "getIndicatorForPosition: groupposition = "+groupposition); return mDatas.get(childposition); } /** * 重写该方法,响应滑动时的事件,是否跟随、定位到当前item * @param childposition * equals childposition if used with ExpandableListView, position otherwise. * @param groupposition * @return */ @Override public int getScrollPosition(int childposition, int groupposition) { return childposition; } public static final String TAG = MyAdapter.class.getSimpleName();}
布局文件,有些坑,照搬了sample
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.vincyan.a1010_jni2.Main2Activity"> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="#000000" android:layout_toStartOf="@+id/quickscroll" android:dividerHeight="1px" android:drawSelectorOnTop="false" android:overScrollMode="never" android:scrollbars="none"/> <com.andraskindler.quickscroll.QuickScroll android:id="@+id/quickscroll" android:layout_alignTop="@id/lv" android:layout_alignBaseline="@id/lv" android:layout_alignParentEnd="true" android:layout_width="wrap_content" android:layout_height="match_parent"/></RelativeLayout>
步骤
使用QuickScroll,直接将源码复制到项目的目录下,app/src/main/java/com/…
1、定义Adapter,实现Scrollable接口,重写下面的两个方法(必须)
1-1 getIndicatorForPosition
返回当前位置的指示器,就是滑动时的预览文字
1-2 getScrollPosition
同步ListView的滑动,滚动到指定的item
2、布局文件中引入QuickScroll组件
com.andraskindler.quickscroll.QuickScroll
3、将QuickScroll跟ListView关联,配置相关属性;
quickscroll.init(QuickScroll.TYPE_INDICATOR_WITH_HANDLE, mListView, mMyAdapter, QuickScroll.STYLE_HOLO); quickscroll.setIndicatorColor(CORAL, CORAL_DARK, Color.WHITE); quickscroll.setHandlebarColor(CORAL, CORAL, CORAL_HANDLE);
0 0
- ListView增强组件QuickScroll
- 增强版ListView-RecyclerView
- ListView组件
- ListView组件
- ListView组件
- 浅谈组件增强
- 类似ListView ,htc组件
- 学习android listview组件
- ListView组件使用
- ListView组件的使用
- ListView组件的应用
- android组件之ListView
- ListView组件的使用
- ListView组件的使用
- ListView组件学习笔记
- Android ListView组件样式
- Android ListView组件样式
- Android自定义组件ListView
- 机器学习简史
- centos7 lamp+nginx搭建(附自动安装脚本)
- jsp内置对象:page属性范围
- Swift基本运算符和简单的逻辑运算符
- POJ1065 Wooden Sticks(Greedy)
- ListView增强组件QuickScroll
- POJ1631 Bridging signals(最大上升子序列)
- VMware Tools的安装无法手动启动,自动安装正在进行中。 的解决方案!
- 读书笔记:C++ primer 5th edition--chapter13.拷贝控制
- 计算机视觉——DoG和LoG算子
- jsp内置对象:request属性
- HashMap的原理与详解
- Leetcode-90. Subsets II
- Android String