我有一个片段,在这个片段下面是一个容器(有时)包含一个GridWiew。如何在GridView的滚动条上滚动整个屏幕?
答案 0 :(得分:0)
如果您希望滚动子项,ScrollView应该是层次结构的根。
答案 1 :(得分:0)
首先,您必须添加scrollView作为父级,它将是片段和gridView的父级。在那种情况下,基于gridview滚动内容不是理想的解决方案,因为它将导致2滚动。相反,您必须禁用gridview的滚动并向gridview添加高度。这会删除回收功能。
固定高度的GridView
package com.mytestapp
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.GridView;
import android.content.Context;
public class ExpandableHeightGridView extends GridView {
ExpandableHeightGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
ExpandableHeightGridView(Context context) {
super(context);
}
public ExpandableHeightGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// Calculate entire height by providing a very large height hint.
// View.MEASURED_SIZE_MASK represents the largest height possible.
int expandSpec = MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
ViewGroup.LayoutParams params = getLayoutParams();
params.height = getMeasuredHeight();
}
}