问题
I'm trying to create a ListView that will consist of two types of elements: Strings and a GridView.
I.e. putting both Strings and a GridView inside one single ListView.
The layout should look something like this:
- String Item 1.1
- String Item 1.2
- String Item 1.3
- String Item 1.4
-
GridView Item 1 GridView Item 2
GridView Item 3 GridView Item 4 - String Item 2.1
- String Item 2.2
- String Item 2.3
- String Item 2.4
Is there any way to do this?
As per now I can only show the first item in the GridView, and it acts just as a regular String element in the ListView.
The code can be viewed here:
- CustomListViewActivity.java
- SectionAdapter.java
- main.xml
- header_row.xml
- simple_list_row.xml
- grid_list_row.xml
Any help is appreciated :)
回答1:
To answer my own question:
Based on this answer I created this class that works very well:
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();
}
}
来源:https://stackoverflow.com/questions/3862281/add-a-gridview-to-a-listview-in-android