在某个Android项目开发中,某个模块将所有布局、控件嵌套在ScrollView中,结果发现页面最顶部的Banner一画出屏幕外,需手动滑下才可显示。
原因猜测(博主自己观点) :在Activity计算窗口的高度时,ScrollView布局内的ListView(RecyclerView)等未填充数据,并且由于ScrollView嵌套ListView(RecyclerView)时没有指定高度,所以加载数据以后ScrollView就会按照layout中定义的默认高度计算。
解决办法:让最上面的View获得焦点
banner.setFocusable(true);
banner.setFocusableInTouchMode(true);
banner.requestFocus();
banner是博主布局内最顶层的View控件。
希望此片博客可以帮到大家!