我试图在一个屏幕上显示Android布局中的三个不同的垂直部分,每个部分占据屏幕的三分之一,一个在顶部,一个在中间,一个在底部。每个部分都有TextView
和ListView
,ListViews
可以滚动,以便您可以查看所有项目,但整个页面不会移动。我尝试将每个TextView
和ListView
放在LinearLayout
中,并将每个LinearLayout
的高度设置为屏幕总高度的三分之一,但是第一个{{1}只显示其中的所有项目,占据大部分屏幕,其他部分被按下。我也尝试使用layout_weights,但由于某种原因它没有用。 (编辑:设置ListView
最终工作,我不确定我第一次做错了什么)我怎样才能做到这一点,或者有更好的方法来解决这个问题?
答案 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_height
和layout_width
的值。如果您需要添加TextView
,则必须使用相同的宽度/高度/重量,在此代码中为RelativeLayout
LinearLayout
或FrameLayout
制作每个列表视图并安排ListView
和TextView
内部品尝。为了最有效地执行此操作,请使用Framelayout
并使用列表视图上的边距将其与TextView
抵消。您可以使用TextView
中的ListView
将FrameLayout
相对于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)
使用此:
<?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>