Android 如何将动态大小的视图垂直居中放置在某些文本下方

Android 如何将动态大小的视图垂直居中放置在某些文本下方,android,android-layout,Android,Android Layout,我试图在屏幕上垂直居中显示ListView。在ListView的正上方,我想显示一些文本(列表应该居中,而不是文本) 问题在于ListView具有动态变化的内容(例如,行数)。当有几行并且ListView只填充屏幕的一部分时,我希望ListView居中,上面有文本。当ListView已满并且将比屏幕大时,我希望文本显示在屏幕顶部,ListView将填充下面的剩余空间 当ListView很小时,我当前的布局(如下所示)效果很好,但是当ListView变大时,文本会从屏幕顶部弹出 在ListView

我试图在屏幕上垂直居中显示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>


您是否尝试将TextView中的android:layout_上面的=“@+id/list”更改为ListView中的android:layout_下面的=“@+id/title”?这应该会给你带来想要的效果。

我目前看到的一个问题就在这条线上

android:layout_above="@+id/list"
最好是

android:layout_above="@id/list"
不确定这是否是罪魁祸首

编辑1:



这样做,ListView中的
android:layout\u centerVertical
被忽略,TextView和ListView只是一个接一个地放在屏幕顶部。您必须将android:layout\u centerVertical=“true”添加到TextView(当然)和ListView中。不幸的是,这不起作用,然后文本视图将在屏幕上居中显示,而列表视图(无论有多大)将被压缩到下面的空间中…我将不得不仔细阅读差异是什么,但不,这没有什么区别。谢谢你的建议+id用于为R.java创建新的资源条目,直接id用于引用已存在的现有条目。您是否可以尝试将listview代码放置在具有上述更改的textview之上。恐怕也会产生相同的结果:列表较短时可以正常工作,但是,当列表变长时,文本会被推离顶部。用一些示例代码编辑了我的答案,这些代码对我来说很好。希望能有所帮助。虽然这确实可以防止文本被长列表截断,但当列表变短时,它不会垂直居中于列表视图的中心。
 <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" />