xuexiangjys / XUI

💍A simple and elegant Android native UI framework, free your hands! (一个简洁而优雅的Android原生UI框架,解放你的双手!)
https://xuexiangjys.github.io/XUI/
Apache License 2.0
4.88k stars 838 forks source link

OptionsPickerView 2级联动的时候 第2级的数据 如果第一项没有值得话 整个第2项都是空的 不显示内容 。 #144

Closed baowenqing closed 1 year ago

baowenqing commented 2 years ago

OptionsPickerView 2级联动的时候 第2级的数据 如果第一项没有值得话 整个第2项都是空的 不显示内容 。

使用的XUI版本(必填) implementation 'com.github.xuexiangjys:XUI:1.1.9'

如何重现(必填)


         tvLocation.onClick {
                val kulist = listOf<String>("良品库", "隔离品库", "不良品库")

                val list2 = listOf<String>("货位1", "货位2", "货位3", "货位4")   
                // val list2 = listOf<String>( )    // 这里的list为空的时候   就会有异常   ui显示有误
                val list3 = listOf<String>("货位5", "货位6", "货位7", "货位8")
                val list4 = listOf<String>("货位9", "货位10")
                val locationList = listOf<List<String>>(list2, list3, list4)

                val pvOptions: OptionsPickerView<String> =
                    OptionsPickerBuilder(context) { v: View?, options1: Int, options2: Int, options3: Int ->
                        tvLocation.text = kulist[options1] + "--" + locationList[options1][options2]
                        false
                    }.apply {
                        setTitleText("库位选择")
                        isRestoreItem(true)
                    }.build<String>()

                pvOptions.setPicker(kulist, locationList)
                pvOptions.show()

            }

截图 image.png

异常时候的图片: 异常的时候 那三项都是没有数据显示的 image.png

image.png

xuexiangjys commented 1 year ago

8ea32bcb963435365770e96c33287d31c65e5a4d 因为第一项数据为空,导致右侧控件计算用到的高度为0, 并且在切换左侧项的时候,并没有刷新重新计算右侧控件的高度. 不过话又说回来, 首先这样写是不对的,本身就是一种异常场景,还是要按照规范来写,保证数据的可靠以及有效才行.