最早15年的时候看到了ScrollView嵌套ListView的四种方法,那时候用的小米4(手机小米4,4.4.4,api 19),发现没有问题,当然最简单的就是重写ListView的onMeasure方法和单独定义个ListViewHelper类,计算ListView所有Item高度相加。
以前一直用的时候也没发现有什么问题(当然,大部分情况还是使用了RecyclerView然后多种布局这种形式来实现,或者就直接使用ListView addHeader addFooter),但是最近在测试的时候碰到问题了(使用ListView choiceMode,RecyclerView并没有这个东东)。。。(三星 note 3 lite 4.3 api 18)
使用第二种方法的时候,在计算高度的时候crash了。具体的崩溃代码在
搜索发现很多三星4.3的手机有问题,why?
那么问题来了,如何办呢?
三种办法:
重写Listview是可以的!
ListView的item根布局使用LinearLayout而不是RelativeLayout!
ListView的Adapter中不要使用
contentView
= (ViewGroup) LayoutInflater. rom(context).inflate(R.layout.select_text_oprate_window, null);
而使用
contentView
= (ViewGroup) LayoutInflater. rom(context).inflate(R.layout.select_text_oprate_window, parent,false);
还有一个注意事项,手动计算的时候ListView最后一行显示不全
当然还是推荐用RecyclerView然后使用多种Item,这样的是最好的。over