【问题标题】:LinearLayout android:layout_gravity="center_vertical" works at design time but doesn't at run timeLinearLayout android:layout_gravity="center_vertical" 在设计时有效,但在运行时无效
【发布时间】:2020-03-31 05:49:14
【问题描述】:
    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/dice_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        app:srcCompat="@drawable/empty_dice"
        tools:src="@drawable/dice_1" />

    <Button
        android:id="@+id/roll_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/roll" />

</LinearLayout>

在设计时我得到了线性布局垂直居中,但是当我在模拟器或我的设备上测试它时,线性布局显示在屏幕顶部

【问题讨论】:

  • 你为什么不使用RelativeLayout并使用centerInParent = true

标签: android xml kotlin


【解决方案1】:

在您的 LinearLayout 中,将 layout_gravity 更改为 gravity

【讨论】:

  • 感谢 Mike,但为什么设计和运行时没有同步?
【解决方案2】:

不要

 android:layout_gravity="center_vertical"

你应该使用android:gravity="center_vertical"

将对象放在其容器的垂直中心,不改变其 尺寸

【讨论】:

  • android:gravity 设置它所使用的视图的内容(即它的子视图)的重力。 android:layout_gravity 设置 View 或 Layout 相对于其父级的重力。所以这不是真的???!!!
  • @Sh.Raai 完全正确。
【解决方案3】:

在布局中:

更改android:layout_height="wrap_content"

android:layout_height="match_parent"

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 2023-03-16
    • 2015-10-09
    相关资源
    最近更新 更多