我正试图在屏幕上垂直居中ListView。在ListView的正上方,我想显示一些文本(列表应该居中,而不是文本)。
问题是ListView具有动态改变的内容(例如,行数)。当行数很少且ListView只填充屏幕的一部分时,我希望ListView居中,上面有文本。当ListView已满且大于屏幕时,我希望文本显示在屏幕顶部,ListView填满下面的剩余空间。
当ListView很小时,我当前的布局(下面)效果很好,但当ListView变大时,文本会被推离屏幕顶部。
有关在ListView增长时保持文本可见的任何建议吗?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FF000000">
<TextView
android:id="@+id/title"
android:text="Please select level pack..."
android:textSize="20sp"
android:textStyle="bold"
android:padding="5dp"
android:gravity="center"
android:layout_above="@id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<ListView
android:id="@+id/list"
android:divider="#000000"
android:cacheColorHint="#00000000"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"/>
</RelativeLayout>
答案 0 :(得分:0)
您是否尝试将TextView中的android:layout_above =“@ + id / list”更改为您的ListView中的android:layout_below =“@ + id / title”?这应该会带给你想要的效果。
答案 1 :(得分:0)
我目前可以看到的一个问题是
android:layout_above="@+id/list"
理想情况下应
android:layout_above="@id/list"
不确定这是否是罪魁祸首。
编辑1:
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="5dp"
android:text="Please select level pack..."
android:textSize="20sp"
android:textStyle="bold" />
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/title"
android:layout_centerVertical="true"
android:cacheColorHint="#00000000"
android:divider="#000000" />