我无法确定为什么GridView略大于预期。如此处所示:Picture of problem,GridView遍历屏幕并获得滚动条。但是,即使我限制了GridView的大小,它仍然会超过其垂直界限并在其自身上创建一个滚动器。
如何使GridView停留在指定空间内并且不创建滚动条?我认为它具有水平和垂直空间的权重,我认为水平可以完美地工作。但是我不太确定垂直方向。
此代码在扩展BaseAdapter的自定义适配器中。将图像放置在fragment_grid中,然后将其放置在activity_board的FrameLayout中。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(mContext);
imageView.setImageResource(waterImage);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
return imageView;
}
fragment_grid.xml
<?xml version="1.0" encoding="utf-8"?>
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:horizontalSpacing="1dp"
android:verticalSpacing="1dp"
android:numColumns="8"
tools:context=".GridFragment" >
</GridView>
activity_board.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<TextView
android:id="@+id/time_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/invite_friend"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="8">
<FrameLayout
android:id="@+id/fragment_container_player"
android:layout_width="0dp"
android:layout_weight="8"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="2">
</LinearLayout>
<FrameLayout
android:id="@+id/fragment_container_opponent"
android:layout_width="0dp"
android:layout_weight="8"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>