DrawerLayout 内的 RelativeLayout 中的中心项目

Centre Item in RelativeLayout inside DrawerLayout

我有一个抽屉布局,其中包含主要 activity 的相对布局以及自定义应用程序栏库。我正在尝试将 placeNameDesc TextView 居中放置在屏幕中,但这并没有发生

XML布局代码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:openDrawer="start">

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:anroid="http://schemas.android.com/apk/res-auto"
    tools:context=".PlaceDetails"
    android:background="@mipmap/background">

    <com.github.florent37.awesomebar.AwesomeBar
        android:id="@+id/bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white"
        android:elevation="4dp" />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:layout_below="@+id/bar"
        android:id="@+id/placeImage"/>

    <TextView
        android:id="@+id/imageCounter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/placeImage"
        android:fontFamily="@font/montserrat"
        android:layout_centerHorizontal="true"
        android:textColor="@color/menuYellow" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/placeNameDesc"
        android:fontFamily="@font/montserrat"
        android:layout_centerInParent="true"
        android:textSize="18sp"
        android:text="Name:"
        android:layout_below="@id/placeImage"
        android:textColor="@color/menuYellow"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/placeNameDesc"
        android:fontFamily="@font/montserrat"
        android:textSize="14sp"
        android:layout_centerHorizontal="true"
        android:textColor="@color/menuText"
        android:id="@+id/placeName"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/placeAddressDesc"
        android:fontFamily="@font/montserrat"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:textSize="18sp"
        android:text="Address:"
        android:layout_below="@+id/placeName"
        android:textColor="@color/menuYellow"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/placeAddressDesc"
        android:fontFamily="@font/montserrat"
        android:textSize="14sp"
        android:layout_centerHorizontal="true"
        android:textColor="@color/menuText"
        android:id="@+id/placeAddress"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/placeRatingDesc"
        android:fontFamily="@font/montserrat"
        android:layout_marginTop="10dp"
        android:textSize="18sp"
        android:layout_centerHorizontal="true"
        android:text="Google Rating:"
        android:layout_below="@id/placeAddress"
        android:textColor="@color/menuYellow"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/placeRatingDesc"
        android:fontFamily="@font/montserrat"
        android:textSize="14sp"
        android:layout_centerHorizontal="true"
        android:textColor="@color/menuText"
        android:id="@+id/placeRating"/>

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/submitInstructions"
        android:layout_centerHorizontal="true"
        android:id="@+id/instructionsButton"
        android:src="@drawable/instructionsbutton"
        android:background="#00000000"/>

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:id="@+id/submitInstructions"
        android:layout_alignParentBottom="true"
        android:src="@drawable/submitinstructionsbutton"
        android:background="#00000000"/>

</RelativeLayout>

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:menu="@menu/drawer_menu" />

</android.support.v4.widget.DrawerLayout>

我不确定 RelativeLayout 是否是此处使用的正确布局类型,非常感谢任何解决此问题的帮助。

您需要设置此属性android:layout_centerInParent="true" 并从其属性中删除 android:layout_below="@id/placeImage",因为此属性将其置于 placeImage 下方并且不允许其正确居中。
在此之后,您可能需要对其他视图进行其他更改。

您好 JimmyBoy 先生,您的布局中的问题是您为文本视图提供了一种锚点,以便与 layout_centerInParent 对齐。

提供 suc 标签 layout_belowlayout_above 等将覆盖 layout_centerInParentlayout_centerHorizontallayout_centerVertial

您需要做的就是从 placeNameDesc 文本视图中删除 android:layout_below