使用 RecycleView 根据不同布局显示时 嵌套使用了一个 GridView ,出现 GridView 高度总为一行数据高度的问题。
原来是官方为了避免两个滑动控件设置的强制限定。
解决: 自定义 GridView 高度
参考:https://www.jianshu.com/p/0883583f9074
自定义控件继承自 GridView,改写 onMesure 方法,实现高度自适应。
public class OrderConfirmGridView extends GridView {
//前三个为构造函数
public OrderConfirmGridView(Context context) {
super(context);
}
public OrderConfirmGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public OrderConfirmGridView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/**
* 改写gridview高度
* @param widthMeasureSpec
* @param heightMeasureSpec
*/
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}