Android GridView元素在行中重叠

时间:2013-01-09 13:36:15

标签: android gridview stretching

我正在学习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>

我的适配器类的getView方法,它扩展了BaseAdapter:

    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;
    }

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

1 个答案:

答案 0 :(得分:1)

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

另一方面,看起来你想要实现的是使用scrollview和linearlayout(因为在你的模拟中,列是对齐的)。

查看此帖子:Android heterogeneous gridview like pinterest