0

这是我的布局:

<?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>

问题是当第一部分有很多项目并且占据整个屏幕时,我无法滚动查看第二部分。通过快速搜索,我发现我不能ListViewScollView.

有没有办法让这个LinearLayout可滚动的,所以我可以看到所有可以添加的部分?我需要类似于iOS UITableView的东西,几个部分和标题。

先感谢您。

4

2 回答 2

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.

如果我的解决方案太难看,仍然接受这个问题的建议:)

于 2012-10-10T15:40:53.030 回答
0

对两个 ListView 使用 layout_weight="1" 和 layout_height="0dp" ,这会将您的整个屏幕分成两部分,以便您可以看到这两个部分。如果您必须将 TextViews 显示为列表视图顶部的标题,则采用上述权重和线性布局内部的两个线性布局,将 textview 和 listview 放置为垂直方向。

于 2012-10-09T15:31:37.820 回答