Android 特别好用的框架 二,Spinner(下拉框)的使用

在项目中我们经常会用到Spinner(下拉框)来做选择,常用比如筛选框.选择项 今天给搭建分享一个特别好用的三方框架NiceSpinner的使用方法

第一步.添加依赖库
implementation 'com.github.arcadefire:nice-spinner:1.4.4'
第二步.创建一个xml布局
1.创建Spinner样式
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <!-- view背景色 -->
    <solid android:color="@color/white" />
    <!-- 边框颜色 宽度 -->
    <stroke
        android:width="1px"
        android:color="@color/xian" />
    <!-- 边框圆角 -->
    <corners
       android:radius="5dp"/>
</shape>
2.使用布局
  <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center|end"
            android:background="@drawable/spinner_shape"
            android:padding="2dp">

            <org.angmarch.views.NiceSpinner
                android:id="@+id/sp_setting_camera_angle"
                android:layout_width="100dp"
                android:layout_height="25dp"
                android:textSize="13sp"
                app:arrowTint="@color/blue"
                app:textTint="@color/black" />
        </FrameLayout>
第三步.初始化使用
 private val spinnerAngle = LinkedList(listOf( "0", "90", "180", "270" ))
  initSpinner(sp_setting_camera_angle, spinnerAngle)//填充数据
 sp_setting_camera_angle.selectedIndex = 1//设置默认下标,不设置的为0
private fun initSpinner(spinner: NiceSpinner, list: List<String>) {
        spinner.attachDataSource(list)
        spinner.setPadding(0, 0, 0, 0)
        spinner.gravity = CENTER
    }
第四步.点击监听方法
  sp_setting_camera_angle.setOnSpinnerItemSelectedListener { _, _, position, _ ->
            setting.cameraAngle = position.toString()
            when (position) {
                0 -> //下标选中后
                1 ->
                2 -> 
                3 ->
            }

        }

这里指的注意的是内边距设置下,xml设置是无效的,不设置的话,在高度较小的情况下,文字容易被覆盖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值