这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dip"
android:textSize="15sp"
android:textStyle="bold"
android:textColor="@android:color/holo_blue_dark"
android:text="@string/section_1" />
<ListView
android:id="@+id/lv_section_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dip"
android:textSize="15sp"
android:textStyle="bold"
android:textColor="@android:color/holo_blue_dark"
android:text="@string/section_2" />
<ListView
android:id="@+id/lv_section_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false" />
</LinearLayout>
问题是,当第一部分包含多个项目且占用整个屏幕时,我无法滚动查看第二部分。通过快速搜索,我发现我无法在ListView
中使用ScollView
。
有没有办法让这个LinearLayout
可滚动,所以我可以看到所有可以添加的部分?我需要类似于 iOS UITableView 的东西,几个部分和标题。
提前谢谢。
答案 0 :(得分:1)
好的,只是要有一个包含多个部分的列表,我可以做的就是解决我的问题非常简单:
我只留下了一个ListView
并创建了一个班级CustomAdapter
。并添加了不同类型的项目:
ArrayList<HashMap<String, String>> listItems = new ArrayList<HashMap<String, String>>();
HashMap map = new HashMap<String, String>();
map.put("type", "section");
map.put("title", "Section 1");
listItems.add(map);
map = new HashMap<String, String>();
map.put("type", "item");
map.put("title", "Item A");
map.put("detail", "Detail A");
listItems.add(map);
将适配器设置为我的ListView
:
CustomAdapter adapter = new CustomAdapter(context, R.layout.result_list, listItems);
ListView lv = (ListView) view.findViewById(R.id.resultlist);
lv.setAdapter(adapter);
在我的CustomAdapter
中,我为每种类型,部分或项目设置了不同的样式。请注意,我只是想要区分ListView
中的项目。
如果我的解决方案太难看,仍然会接受有关此问题的建议:)
答案 1 :(得分:0)
对于两个ListViews使用layout_weight =“1”和layout_height =“0dp”,它们将整个屏幕分成两部分,以便您可以看到这两个部分。如果必须在列表视图的顶部显示TextViews作为标题,则采用上述权重的两个线性布局和线性布局内部,将textview和listview设置为垂直方向。