1

我遇到了这样的问题:我在它下面有一个 MapView 和一个 ListView。地图大小是固定的。但我需要一起滚动我的视图。我以某种方式处理了非滚动地图和单项列表的问题,但出现了另一个问题 - 在 ScrollView 中,ListView 下方有很多可用空间,我无法摆脱它。我认为将列表设置为“wrap_content”会有所帮助,但事实并非如此。该怎么办?这是我的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/scrollView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true">

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <com.package.MyMapView
                     android:layout_width="match_parent"
                     android:layout_height="100dp"
                     android:clickable="true"
                     android:apiKey="key"
                     android:id="@+id/map"
                     android:layout_gravity="top"/>
        <ListView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/channelsList" >

        </ListView>

    </LinearLayout>

    </ScrollView>
</LinearLayout>
4

3 回答 3

2

将ListView包装在ScrollView中始终不是一个好主意,因为两者都是可滚动的视图。

于 2012-07-17T09:12:15.677 回答
1

您可以尝试替换这些行:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

这些行:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="fill_parent" >
于 2012-07-17T09:11:02.940 回答
1

不要在 ScrollView 中插入任何 ListView,这在任何情况下都无法满足您的要求。尝试将 MapView 作为标题添加到您的 ListView 以使其与您的列表一起滚动。

要将 mapView 实现为标头,在您的 java 代码中,只需将其包含addHeaderView(<your_map_view>)到您的 listView 组件中。这必须在调用之前setAdapter()调用。

于 2012-07-17T09:36:13.470 回答