列表和图像在同一个ScrollView中

时间:2012-03-04 22:17:57

标签: android android-layout android-listview android-imageview android-linearlayout

我正在尝试在同一个'滚动'中获取图像和列表(我不知道如何放置它)。我的基本(垂直)布局是:

  • 的TextView

  • ImageView的

  • 的ListView

我正在尝试滚动,就像图像本身就是一个列表项一样。所以textview必须保持在顶部,其他一切都必须在它下滚动。

目前我有以下代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@color/app_purple"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/about_app_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:padding="15dp"
        android:text="@string/about_app_label"
        android:textColor="@color/background"
        android:textSize="20dp"
        android:textStyle="bold" />

        <ImageView
            android:id="@+id/app_logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/logo" />

</LinearLayout>

<ListView
    android:id="@+id/information_list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/background"
    android:divider="@drawable/listdivider"
    android:dividerHeight="1dp"
    android:fadingEdge="none" >

    <!-- Preview: listitem=@layout/row -->
</ListView>

非常感谢任何帮助!

修改

listView的自定义行布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/listview"
android:orientation="horizontal"
android:padding="4dip" >

<ImageView
    android:id="@+id/list_icon"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:adjustViewBounds="true"
    android:layout_marginRight="5dp"
    android:contentDescription="@string/icon_content_description" />

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/list_label"
            android:layout_width="200dp"
            android:layout_height="wrap_content"

            android:maxLines="1"
            android:paddingBottom="5dp"
            android:paddingTop="5dp"
            android:textColor="@color/result_label"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/list_count"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_toRightOf="@+id/list_label"
            android:ellipsize="end"
            android:gravity="center_vertical"
            android:maxLines="1"
            android:textColor="@color/text" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/list_result"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:textColor="@color/text"
            android:textColorLink="@color/app_purple" />

        <ProgressBar
            android:id="@+id/list_progress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:gravity="center_vertical"
            android:visibility="gone" />
    </RelativeLayout>
</LinearLayout>

3 个答案:

答案 0 :(得分:2)

你会有一个垂直LinearLayout持有固定的TextViewListView。您的ImageView将是ListView上的标题,通过addHeaderView()添加。标题,尽管名称,但滚动ListView

的内容

答案 1 :(得分:1)

要创建自定义列表视图,您需要创建一个single_list_item.xml文件来排列要滚动的所有内容,例如旁边带有描述文本的图像。您还需要在Xml文件上添加ListView,以便程序可以处理视图。而且,他们可以使用适配器处理java文件中的所有内容。列表将显示在文本的底部。

有一个很好的例子,说明如何here

答案 2 :(得分:0)

目前尚不清楚你究竟想做什么。 ScrolView只能有一个孩子。所以我想你应该将ImageView和Listview放在LinearLayout中。 但无论如何 - 将Listview放在ScrollView中是一个坏主意 - 操作系统现在将如何滚动? ListItem或整个列表。如果你可以更具体 - 我可以尝试更多帮助...