4

我正在学习 GridView。正如您从下面的屏幕截图中看到的那样,我添加了 13 个不同长度字符串的按钮作为它们的文本。无论长文本按钮相互重叠,我尝试过但无法修复它。我想要的是每一行都具有相同的最高元素高度,例如,第 1 行中的所有按钮都应该具有“lorem ipsum dolor sit amet”的高度,并且所有其他行都应该具有最长的元素高度。我怎样才能做到这一点?

如果不可能,或者我可以有以下内容:所有元素都在它们的大小,但是网格实际上不是一个矩形,它可以有以下方案:(实际上没有网格,它只是附加视图列在一起,而不考虑实际网格在哪里。

------------------------------------------------|
|              |       2       |                |
|      1       |----------------      3         |
|              |               |----------------|
---------------|       5       |                |
|        4     |               |      6         |
|------------------------------|-----------------

我的网格视图:

<GridView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:columnWidth="90dp"
    android:gravity="fill_vertical"
    android:numColumns="3"
    >
</GridView>

扩展 BaseAdapter 的适配器类的 getView 方法:

    public View getView(int position, View convertView, ViewGroup arg2) {
        Button btn = null;
        if (convertView == null) {
            btn = new Button(mContext);
        } else {
            btn = (Button) convertView;
        }
        btn.setText(txts[position]);
        return btn;
    }

注意:我将有我的自定义视图,我只是用简单的按钮测试它。

4

1 回答 1

1

您要问的不是 GridView 的能力。您可能希望在自定义 Gridview 中修改 onMeasure。

另一方面,您想要实现的目标似乎可以通过使用滚动视图和线性布局来完成(因为在您的模拟中,列是对齐的)。

查看这篇文章:Android 异构 gridview like pinterest

于 2015-02-05T21:05:59.810 回答