這種觀點是絕對有可能使用的ListView
你將需要實現自己的ListAdapter定製getView行爲。 根據視圖的位置,您可以呈現不活動的divider視圖(該視圖不可點擊),也可以爲適當的類別渲染gridview。 This tutorial可以讓你開始使用getView實現自定義適配器。
這裏是什麼getView可能看起來像
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
boolean isDivider = false //TODO logic here
if (isDivider){
if (v == null) {
LayoutInflater li = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = li.inflate(R.layout.custom_adapter_item, null);
}
Map<String, String> item = items.get(position);
initView(v, item);
return v;
} else{
View v = null //TODO init divider view here
return v;
}
}
private void initView(View v, Map<String, String> item) {
String[] keys = DummyData.columns;
((TextView) v.findViewById(R.id.value_left)).setText(item.get(keys[0]));
((TextView) v.findViewById(R.id.value_right)).setText(item.get(keys[1]));
}
你將不得不擡高你的GridView的佈局,我吹我的custom_adapter_item一些示例代碼,但是這是一個複雜的列表自定義列表視圖框架項目
您的視圖層次最終會看起來像這樣
- 的ListView
- Category1Header(LinearLayout中))
- Category1Contents(的GridView)
- Category2Header
你的想法
花了一段時間,我的頭繞着你在這裏解釋的,但現在我看到它。謝謝! – Robert 2012-03-21 19:51:38
@羅伯特我有時會在我的腦海中跳躍,或者當我超前自我時,就會吝嗇解釋。如果你想澄清一下,請評論。 – 2012-03-21 19:55:32