다음 두 가지 방법을 사용할 수 있습니다.
1. xml 레이아웃 파일에 설정한 Wrap_content는 GridView의 내용에 따라 너비와 높이를 사용한다는 의미입니다. 다음과 같습니다:?android:layout_width="wrap_content" android:layout_height="wrap_content"
2. 코드에서 동적으로 설정한 후 그리드뷰의 너비와 높이를 계산합니다. 그런 다음 설정합니다: int?height?=? 20; //여기의 높이는 동적으로 계산되어야 합니다.
int?width?=?30; //여기의 너비는 동적으로 계산되어야 합니까?
p>LinearLayout.LayoutParams?linearParams?= new?LayoutParams(width,?height);
gridview.setLayoutParams(linearParams);?//설정된 레이아웃 매개변수를 컨트롤에 적용
Gridview가 ScrollView에 중첩되어 있으면 Gridview 컨트롤을 다시 작성해야 합니다. 그렇지 않으면 Gridview는 한 줄만 표시합니다(즉, 특정 높이가 충분하지 않습니다). 다시 작성하는 방법은 다음 코드를 참조할 수 있습니다. /** *?@author?hnbcinfo *?GridView 컨트롤을 사용자 정의하여 ListView 또는 ScrollView에서 GridView를 사용하여 발생하는 GridView의 불완전한 표시 문제를 해결합니까? *?현재 응용 프로그램: in 타임라인, 사진 표시*/
public?class?GridViewForScrollView?extends? GridView?{?
public?GridViewForScrollView(Context?context, ?AttributeSet?attrs)?{?< /p>
super(context, ?attrs);?
}?
public?GridViewForScrollView(Context?context)?{?
super (컨텍스트);?
}?
public ?GridViewForScrollView(Context?context, ?AttributeSet?attrs, ?int?defStyle)?{?
super (컨텍스트, ?attrs, ?defStyle);?
}? p>
@Override?
public?void?onMeasure(int?widthMeasureSpec, ?int? heightMeasureSpec)?{?
int?expandSpec?=?MeasureSpec.makeMeasureSpec( ?
Integer.MAX_VALUE?gt;gt;?2,?MeasureSpec.AT_MOST);?
p>
super.onMeasure(widthMeasureSpec,?expandSpec);?
}?
}