gzu-liyujiang / AndroidPicker

安卓选择器类库,包括日期及时间选择器(可用于出生日期、营业时间等)、单项选择器(可用于性别、民族、职业、学历、星座等)、二三级联动选择器(可用于车牌号、基金定投日期等)、城市地址选择器(分省级、地市级及区县级)、数字选择器(可用于年龄、身高、体重、温度等)、日历选日期择器(可用于酒店及机票预定日期)、颜色选择器、文件及目录选择器、图片选择器等……WheelPicker/DatePicker/TimePicker/OptionPicker/NumberPicker/LinkagePicker/AddressPicker/CarPlatePicker/CalendarPicker/ColorPicker/FilePicker/ImagePicker etc.
Other
6.46k stars 1.47k forks source link

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. #2

Open soyoungboy opened 8 years ago

soyoungboy commented 8 years ago

CityPicker 第二次点击出现

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

gzu-liyujiang commented 8 years ago

@soyoungboy 这个我用三个手机及模拟器测试过多次,就是没触发The specified child already has a parent。你看下错误日志,是哪一行,相应的修改代码removeView()以下试试

msdx commented 8 years ago

这个问题我在使用OptionPicker的时候也遇见过,略查了一下,原因是我在外部inflate一个view,然后在设置bottom的时候把它返回去。而AndroidPicker是在每次显示的时候都会在对应的方法里执行要显示的所有content view的创建,所以就导致在下一次显示时,这个view被添加到新的view里。

另外,个人意见:建议picker的view可以缓存,不必每次显示时都重新创建以及重新设置选择项等。