Scrollview嵌套GridView情况,若GridView不做处理,GridView 的layout_width="wrap_content"时,只显示一行,滑动范围在GridView内部时,GridView可以滑动,框太小,不好看,写死高度又不满足需求,只能尝试将GridView 的高度自适应。
解决方法:自定义MyGridView ,继承GridView ;
关键是在onMeasure中设置高度的测量
public class MyGridView extends GridView {
public MyGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyGridView(Context context) {
super(context);
}
public MyGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(
Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}布局文件中引用MyGridView,一般手机大功告成,GridView全部显示,无论在那个区域滑动,外层scrollview都能滑动,但是。。。划重点,部分华为手机(如荣耀畅玩系列),仍然会出现最后一行显示不全的问题,在尝试滑动事件冲突解决,自适应高度各种方法尝试过后,仍然不行,wtf!!!最后灵光一闪,在布局文件中,给MyGridView下面,设置个高度为20dp的View,运行,完美显示!!!果然,写代码还是得看黄历。
本文介绍了一种解决ScrollView嵌套GridView时显示不全的问题的方法。通过自定义MyGridView类并调整onMeasure方法来实现GridView的高度自适应。此外,还提供了一个针对特定华为手机型号的解决方案,即在布局文件中添加一个固定高度的View。
1701

被折叠的 条评论
为什么被折叠?



