Android:将5个列表视图放在相同的布局中,ScrollView?

时间:2012-05-30 07:53:14

标签: android android-listview android-scrollview

我有5个列表视图,我想放在同一个布局中。 我的想法是使用scrollview,但显然这不是很好。

我怎么能这样做。

谢谢。

这是我的布局代码:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_white" >


<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@null"
    android:src="@drawable/bg_mdpi" />


 <TextView
     android:id="@+id/SearchingForTextView"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginTop="5dp"
     android:text="Searching for: "
     android:textAppearance="?android:attr/textAppearanceSmall"
     android:textColor="#ff000000"
     android:visibility="visible" />


<TextView
    android:id="@+id/SearchingFor"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/SearchingForTextView"
    android:layout_marginTop="5dp"
    android:text="Word"
    android:textColor="#112ED4"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:visibility="visible" />

<TextView
    android:id="@+id/JournalsSearchTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/SearchingFor"
    android:layout_marginTop="10dp"
    android:background="#ff888888"
    android:gravity="center_horizontal"
    android:text="Journals"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#ff000000"
    android:textStyle="bold" />


<ListView
    android:id="@+id/JournalSearchListView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/JournalsSearchTextView"
    android:layout_centerHorizontal="true"
    android:background="#D5DADE"
    android:cacheColorHint="#00000000">
</ListView>

 <TextView
    android:id="@+id/ArticlesSearchTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/JournalSearchListView"
    android:background="#ff888888"
    android:gravity="center_horizontal"
    android:text="Articles"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#ff000000"
    android:textStyle="bold" />

 <ListView
    android:id="@+id/ArticlesIssuesSearchListView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/ArticlesSearchTextView"
    android:layout_centerHorizontal="true"
    android:background="#D5DADE"
    android:cacheColorHint="#00000000" >
</ListView>



<TextView
    android:id="@+id/AuthorsSearchTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/ArticlesIssuesSearchListView"
    android:background="#ff888888"
    android:gravity="center_horizontal"
    android:text="Authors"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#ff000000"
    android:textStyle="bold" />



<ListView
    android:id="@+id/AuthorsSearchListView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/AuthorsSearchTextView"
    android:layout_centerHorizontal="true"
    android:background="#D5DADE"
    android:padding="1dp"
    android:cacheColorHint="#00000000">
</ListView>


<TextView
    android:id="@+id/SubmissionsSearchTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/AuthorsSearchListView"
    android:background="#ff888888"
    android:gravity="center_horizontal"
    android:text="Submissions"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#ff000000"
    android:textStyle="bold" />

 <ListView
    android:id="@+id/SubmissionsSearchListView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/SubmissionsSearchTextView"
    android:layout_centerHorizontal="true"
    android:background="#D5DADE"
    android:cacheColorHint="#00000000">
</ListView>

  <TextView
    android:id="@+id/SpecialIssuesSearchTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/SubmissionsSearchListView"
    android:background="#ff888888"
    android:gravity="center_horizontal"
    android:text="Special Issues"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#ff000000"
    android:textStyle="bold" />

 <ListView
    android:id="@+id/SpecialIssuesSearchListView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/SpecialIssuesSearchTextView"
    android:layout_centerHorizontal="true"
    android:background="#D5DADE"
    android:cacheColorHint="#00000000" >
</ListView>

                

2 个答案:

答案 0 :(得分:1)

我最后得到了你想要的东西。您想要显示5个不同类别的搜索结果。

我建议你可以使用ExpandableListView。 Android提供了一个ExpandableListView,它看起来像以下结构:

Group A       (v)
-----------------
  Child A1
-----------------
  Child A2
-----------------
  Child A3
-----------------
Group B       (v)
-----------------
  Child B1
-----------------
  Child B2
-----------------
  Child B3
-----------------
Group C       (v)
-----------------
  Child C1
-----------------
  Child C2
-----------------
  Child C3

用法与ListView非常相似。你要做的是编写一个扩展BaseExpandableListAdapter的适配器。 您还可以为组视图/子视图实现自定义布局。

您可以参考以下页面:

http://about-android.blogspot.com/2010/04/steps-to-implement-expandablelistview.html

http://www.techienjoy.com/android-expandable-list-dynamically-created-example.php

http://android-adda.blogspot.com/2011/06/custom-expandable-listview.html

答案 1 :(得分:0)

如果你不需要你的ListView可滚动,正如你在评论中提到的那样,列表最多包含~10个项目,我会考虑使用LinearLayout而不是ListView,并将所有5 LinearLayout放入一个大的ScrollView

编辑:代码示例:

布局:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:isScrollContainer="true"
    android:orientation="vertical"
    android:scrollbars="vertical" >
    <LinearLayout
        android:id="@+id/list1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" />
</ScrollView>

代码:

LinearLayout list = (LinearLayout) findViewById(R.id.list);
for (String s : arrayList1) {
  TextView tv = new TextView(this);
  tv.setText(s);
  list.addView(s);
}
for (String s : arrayList2) {
  TextView tv = new TextView(this);
  tv.setText(s);
  list.addView(s);
}