4

我有简单的gridview。它的元素有不同的高度。例如,在行中有一个小元素和一个更大的元素,下一行将与较小的元素对齐,并且较大元素的一部分在第二行下方。如何将gridview的每一行的高度设置为行中最大元素的高度?

我的网格视图

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
                android:id="@+id/new_small_list"
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:numColumns="2"
                android:verticalSpacing="3dp"
                android:horizontalSpacing="3dp"
                android:stretchMode="columnWidth"
                android:gravity="center"
                android:cacheColorHint="@android:color/transparent"
            />
4

1 回答 1

4

用于设置单元格高度,在GridViewAdapter中编写时,例如:

@Override
public View getView(int position, View convertView, ViewGroup parent) {

        if(convertView == null){

            LayoutInflater cellLayout = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);             
            convertView = cellLayout.inflate(R.layout.gridcell_layout, null);
        }

        TextView cell_title = (TextView) convertView.findViewById(R.id.gridview_cell_text);         
        ImageView cell_icon = (ImageView) convertView.findViewById(R.id.griview_cell_image);
        ....

只需替换这一行:

convertView = cellLayout.inflate(R.layout.gridcell_layout, null);

有了这个:

convertView = cellLayout.inflate(R.layout.gridcell_layout, gridView, false);

通过这种方式,在“inflate”中设置父引用,单元格的宽度和高度将设置!在这里你可以找到原因:

按钮边距的布局问题

于 2013-04-15T14:41:12.150 回答