仿iOS滚轮选择器,目前最流畅,最好用,最接近iOS原生的开源控件

这几天因为公司的一个项目需要,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

展开阅读全文

没有更多推荐了,返回首页