在Android版面中显示3个相同高度的可滚动ListView

时间:2015-03-31 20:36:05

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

我试图在一个屏幕上显示Android布局中的三个不同的垂直部分,每个部分占据屏幕的三分之一,一个在顶部,一个在中间,一个在底部。每个部分都有TextViewListViewListViews可以滚动,以便您可以查看所有项目,但整个页面不会移动。我尝试将每个TextViewListView放在LinearLayout中,并将每个LinearLayout的高度设置为屏幕总高度的三分之一,但是第一个{{1}只显示其中的所有项目,占据大部分屏幕,其他部分被按下。我也尝试使用layout_weights,但由于某种原因它没有用。 (编辑:设置ListView最终工作,我不确定我第一次做错了什么)我怎样才能做到这一点,或者有更好的方法来解决这个问题?

2 个答案:

答案 0 :(得分:1)

<LinearLayout
  android:layout_width="match_parent" android:layout_height="match_parent"
  android:orientation="horizontal" >

  <ListView android:layout_width="0dp" android:layout_weight="1" 
    android:layout_height="match_parent" android:background="#FF0000"/>

  <ListView android:layout_width="0dp" android:layout_weight="1" 
    android:layout_height="match_parent" android:background="#00FF00">

  <ListView android:layout_width="0dp" android:layout_weight="1" 
    android:layout_height="match_parent" android:background="#0000FF">

</LinearLayout>

这将为您提供三个同样宽的列:将其设置为行,将方向更改为垂直,并为每个列表视图交换layout_heightlayout_width的值。如果您需要添加TextView,则必须使用相同的宽度/高度/重量,在此代码中为RelativeLayout LinearLayoutFrameLayout制作每个列表视图并安排ListViewTextView内部品尝。为了最有效地执行此操作,请使用Framelayout并使用列表视图上的边距将其与TextView抵消。您可以使用TextView中的ListViewFrameLayout相对于layout_gravity置于TextView内。

即(交换第一个“列”):

<FrameLayout android:orientation="vertical" android:layout_width="0dp"    
  android:layout_weight="1" android:layout_height="match_parent"   
  android:background="#FF0000">

  <TextView android:text="Column!" android:background="#3Eff0000"
    android:layout_height="40dp" android:layout_width="match_parent">

  <ListView android:layout_marginTop="48dp" android:layout_height="match_parent"      
    android:layout_width="match_parent" android:background="#8Aff0000"/>

</FrameLayout>

答案 1 :(得分:0)

使用此:

enter image description here

<?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="match_parent"
    android:orientation="horizontal"
    android:weightSum="3">

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#ff89ff91">


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="#1"
            android:id="@+id/textView"
            android:padding="5dp"
            android:gravity="center" />

        <ListView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/listView"
            android:layout_below="@+id/textView" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#ffff8177">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="#2"
            android:id="@+id/textView2"
            android:padding="5dp"
            android:gravity="center" />

        <ListView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/listView2"
            android:layout_below="@+id/textView2" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#ffffe85d">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="#3"
            android:id="@+id/textView3"
            android:padding="5dp"
            android:gravity="center" />

        <ListView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/listView3"
            android:layout_below="@+id/textView3" />
    </RelativeLayout>
</LinearLayout>