如何将父视图居中并在滚动视图内的相对布局内添加视图下方

How to center a view in parent and add a view below it inside a Relative Layout inside a Scroll view

我想制作一个相对布局,用户可以向下滚动并有许多文本视图 - 从屏幕中央开始,每个视图都在另一个视图下方。 为此,我将我的相对布局包装在一个滚动视图中,并且我有两个文本视图。其中一个文本视图具有 android:layout_centerInParent="true",另一个具有 android:layout_centerHorizontal="true"android:layout_below="first text view id"

问题是 android:layout_below="first text view id" 没有效果:我在屏幕中央看到第一个文本视图,在屏幕顶部水平居中看到另一个视图。

我的布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:id= "@+id/chooseMapsScroll">

    <RelativeLayout
        android:id="@+id/chooseMaps"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/title"
        android:fillViewport="true"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="test center in parent"
            android:id="@+id/test_below"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:text="test center below"
            android:layout_below="@id/test_below"/>
    </RelativeLayout>
</ScrollView>

更新 我发现布局的背景图像是导致问题的原因。

证明:

That's the output I got without background image

That's the output I got with background image

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


<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:id= "@+id/chooseMapsScroll">

    <LinearLayout
        android:id="@+id/chooseMaps"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/title"
        android:gravity="center"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="test center in parent"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="test center below"/>
    </LinearLayout>



</ScrollView>

尝试这个,如果没有工作,请反馈。

尝试使用这个: 让我知道是否有任何事情,否则这肯定会起作用 尝试使用 LinearLayout 而不是

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


<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:id= "@+id/chooseMapsScroll">

    <LinearLayout
        android:id="@+id/chooseMaps"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/title"
        android:gravity="center"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="test center in parent"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="test center below"/>
    </LinearLayout>



</ScrollView>