Android中的gravity和layout_gravity有什么区别?


Android同时支持gravity和layout_gravity。Gravity调整视图位置。使用gravity,我们可以对视图进行如下所示的对齐。

<TextView
   android:id = "@+id/button"
   android:layout_width = "match_parent"
   android:layout_height = "wrap_content"
   android:gravity = "center"
   android:text = "Click here to hide"
/>

在上面的代码中,TextView将设置在父布局的中间。

Gravity属性

  • Center - 将视图放在父布局的中心。

  • Right - 将视图放在父布局的右侧。

  • Left - 将视图放在父布局的左侧。

  • End - 将视图放在父布局的末尾位置。

  • Start - 将视图放在父布局的起始位置。

  • Top - 将视图放在父布局的顶部位置。

  • Bottom - 将视图放在父布局的底部位置。

  • Center vertical - 将视图放在父布局的垂直中心。但这需要子视图的高度为MATCH_PARENT。

  • Center Horizontal - 将视图放在父布局的水平中心。但这需要子视图的宽度为MATCH_PARENT。

  • layout_gravity - layout_gravity与gravity类似,但它将根据父布局的角位置视图,如下所示。
<EditText
   android:id = "@+id/editext"
   android:layout_width = "wrap_content"
   android:layout_height = "wrap_content"
   android:layout_gravity = "right">
</EditText>

在上面的例子中,我们将layout_gravity设置为right。它将放在父视图的右侧。

此示例演示了gravity和layout_gravity之间的区别。

**步骤1** - 在Android Studio中创建一个新项目,转到文件⇒新建项目,并填写所有必需的详细信息以创建新项目。

**步骤2** - 将以下代码添加到res/layout/activity_main.xml。

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
   xmlns:tools = "http://schemas.android.com/tools"
   android:id = "@+id/rootview"
   android:layout_width = "match_parent"
   android:layout_height = "match_parent"
   android:orientation = "vertical"
   tools:context = ".MainActivity">
   <EditText
      android:id = "@+id/editext"
      android:layout_width = "wrap_content"
      android:layout_height = "wrap_content"
      android:layout_gravity = "right"></EditText>
   <TextView
      android:id = "@+id/button"
      android:layout_width = "match_parent"
      android:layout_height = "wrap_content"
      android:gravity = "center"
      android:text = "Click here to hide" />
</LinearLayout>

让我们尝试运行您的应用程序。我假设您已将您的实际Android移动设备连接到您的计算机。要在Android Studio中运行应用程序,请打开您的项目中的一个活动文件,然后单击运行 播放图标  工具栏中的图标。选择您的移动设备作为选项,然后检查您的移动设备,它将显示您的默认屏幕。

keys

在上面的代码中,我们将textview的gravity设置为center,因此它位于父视图的中心,在edittext中,我们将layout_gravity设置为right,因此它位于父视图的右侧。

点击这里下载项目代码

更新于:2020年6月26日

1K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告