1

我试图让图像和列表在同一'滚动'(我不知道怎么说)。我的基本(垂直)布局是:列表和图像在同一个滚动视图

  • 的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: [email protected]/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> 

回答

2

你将有一个垂直LinearLayout拿着固定TextViewListView。您的ImageView将作为ListView的标题,通过addHeaderView()添加。标题尽管有其名称,但会滚动显示ListView的内容。

+0

谢谢,这正是寻找的东西。这是你第二次帮助我完成这个项目,第一次是通过你的一本书:)。 – Meatje 2012-03-04 23:40:51

1

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

有是如何做到这一点here

+0

我已经有一个listView的自定义行布局。但我没有看到使imageView占用整行的可能性。或者是否可以使用不同的布局来实现一行?我已经使用row.xml代码更新了我的帖子。尽管感谢您的帮助。 – Meatje 2012-03-04 22:54:10

+0

为什么不将ImageView添加到row.xml文件并将其绘制在文本的顶部......也可以在eclipse下布局的图形视图中查看每行将如何看到图像。 – 2012-03-04 23:05:10

0

目前还不清楚到底是什么你想要做一个很好的例子。 ScrolView只能有一个孩子。所以我想你应该把ImageView和Listview放在一个LinearLayout中。 但任何方式 - 将一个列表视图放在ScrollView中是一个坏主意 - 操作系统现在将如何滚动? ListItem或整个列表。如果你能更具体的 - 我可以尝试帮助更多...

+0

我想我必须把imageView作为listview中的第一行,但我已经有了一个不允许的自定义行布局,我将自定义row.xml添加到了原始文章中。我认为我最好的选择是将imageView作为一行添加到listView中,但我不知道如何使用当前的row.xml布局来实现。 – Meatje 2012-03-04 23:07:08