为什么 layout_gravity 属性 没有出现在 Android Studio 中?

Why layout_gravity property doesn't show up in Android Studio?

我一直在尝试使工具栏中的徽标(ImageView)居中。我终于做到了,但花了这么长时间的主要原因是,我在自动完成或 Android Studio 的设计窗格 > 属性 table 中找不到 layout_gravity 属性。只有重力相关 属性 是 foregroundGravity.

现在,我认为 ImageView 是一个 ImageView。它必须在任何地方都有 layout_gravity 但找不到 属性 让我觉得当你使用 android.support.v7.widget.Toolbar.. 有没有人有过类似的经历或者你知道为什么会这样吗?

下面是我的代码,最低 API 级别是 10。

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/ColorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:layout_gravity="top"
    >
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/comp_logo"
            android:layout_gravity="center_vertical|center_horizontal"
            />

</android.support.v7.widget.Toolbar>

属性上的 layout_ 前缀表示该属性是父视图的 LayoutParams.

的 属性

例如,在您发布的布局中,ImageView 上的 layout_gravity 用于告诉 Toolbar 放置图像的位置。 ImageView 本身对该属性没有任何作用。

请注意,许多视图(例如 TextView)确实支持 gravity 属性,即视图将如何布局自己的内容。 layout_gravity 会将视图作为一个整体定位在其父视图中,而 gravity 会将视图的内容定位在该视图中。另见:Gravity and layout_gravity on Android.

Android Studio 未在您的工具栏上提供 layout_gravity 作为选项的原因是,在此布局中,您的工具栏没有父级,因此 Android Studio 不知道它可以使用哪些布局属性。这是有道理的,因为您的布局应该完全独立于您可能放入的任何父级。