将GridView添加到Android中的ListView

时间:2010-10-05 09:13:34

标签: android gridview listview

我正在尝试创建一个ListView,它将包含两种类型的元素:字符串和GridView 即将Strings和GridView放在一个ListView中。

布局应如下所示:

  • 字符串项1.1
  • 字符串项1.2
  • 字符串项1.3
  • 字符串项1.4
  • GridView项目1 GridView项目2
    GridView项目3 GridView项目4
  • 字符串项2.1
  • 字符串项目2.2
  • 字符串项2.3
  • 字符串项2.4

有没有办法做到这一点?

目前我只能显示GridView中的第一个项目,它在ListView中只是一个常规的String元素。

可在此处查看代码:

感谢任何帮助:)

1 个答案:

答案 0 :(得分:51)

回答我自己的问题:

基于this answer我创建了这个非常有效的类:

public class NonScrollableGridView extends GridView {
    public NonScrollableGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // Do not use the highest two bits of Integer.MAX_VALUE because they are
        // reserved for the MeasureSpec mode
        int heightSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, heightSpec);
        getLayoutParams().height = getMeasuredHeight();
    }
}