这几天因为公司的一个项目需要,2级联动,iOS样式滚轮,众所周知,Android端没有这样的原生控件,如图,
目前来说,这个开源控件具有的优势是,
1. 高自由度 如果需要省市,时间等这类,网上有很多,转看这个
https://github.com/saiwu-bigkoo/Android-PickerView
2. 简洁,简单
3. 用法说明
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:gravity="center"
android:orientation="horizontal">
<com.weidongjian.meitu.wheelviewdemo.view.LoopView
android:id="@+id/loopView1"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
<com.weidongjian.meitu.wheelviewdemo.view.LoopView
android:id="@+id/loopView2"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
</LinearLayout>
值得注意的是,目前来说,LoopView其他属性都没有意义,比如layout_width=”match_parent”,就不能全屏,所以布局里就像我这样简单写下就可以了,主要设置外层的布局,以及代码中设置其他的布局,看java代码:
//声明布局
LoopView loopView1;
LoopView loopView2;
//....
//初始化方法,在onCreate(),里调用就好了
public void init() {
loopView1 = (LoopView) findViewById(R.id.loopView1);
loopView2 = (LoopView) findViewById(R.id.loopView2);
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < 15; i++) {
list.add("item " + i);
}
//设置是否循环播放,加这句为不循环,注释掉为循环
loopView1.setNotLoop();
//设置原始数据
loopView1.setItems(list);
loopView1.setViewPadding(100,20,20,20);
//设置初始位置
// loopView1.setInitPosition(5);
//设置字体大小
loopView1.setTextSize(20);
//滚动监听 这里是第一个滚轮 我在这个监听里设置了一个简单的联动 到第二个滚轮
loopView1.setListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(int index) {
Log.d("debug", "Item " + index);
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < 15; i++) {
list.add(index + "二级 " + i);
}
// //设置原始数据
loopView2.setItems(list);
}
});
//第二个item
//设置是否循环播放
loopView2.setNotLoop();
//设置原始数据
loopView2.setItems(list);
loopView2.setViewPadding(20,20,100,20);
//设置初始位置
// loopView1.setInitPosition(5);
//设置字体大小
loopView2.setTextSize(20);
//滚动监听
loopView2.setListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(int index) {
Log.d("debug", "Item " + index);
}
});
}
这里是github地址 开源的https://github.com/weidongjian/androidWheelView/
原作者简书链接 http://www.jianshu.com/p/e2b3118d8ca4