java - 如何在 android studio 中进行布局?
问题描述
我正在尝试进行如下所示的活动: here
问题是当我启动应用程序时它并没有得到相同的结果。按钮被剪切或文本被剪切。如果我改变一个按钮的位置,一切都在左上角。我的问题是:我该怎么做才能让一切都得到我想要的位置?我使用了相对布局。也许这就是问题所在?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/button3"
android:layout_width="245dp"
android:layout_height="68dp"
android:layout_below="@+id/button"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="83dp"
android:layout_marginTop="26dp"
android:layout_marginEnd="83dp"
android:layout_marginBottom="238dp"
android:text="Info"
android:textColor="@color/colorPrimary"
android:textSize="24sp"
android:textStyle="normal" />
<Button
android:id="@+id/button"
android:layout_width="245dp"
android:layout_height="68dp"
android:layout_centerInParent="true"
android:text="Kartenansicht"
android:textColor="@color/colorPrimary"
android:textSize="24sp"
android:textStyle="normal" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="115dp"
android:layout_above="@+id/button2"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="71dp"
android:layout_marginTop="112dp"
android:layout_marginEnd="73dp"
android:layout_marginBottom="18dp"
android:text="Um zu überprüfen, ob Sicherheitskameras in der Nähe sind, bitte hier drücken:"
android:textSize="20sp" />
<Button
android:id="@+id/button2"
android:layout_width="244dp"
android:layout_height="62dp"
android:layout_above="@+id/button"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="83dp"
android:layout_marginEnd="84dp"
android:layout_marginBottom="24dp"
android:text="Start"
android:textColor="@color/colorPrimary"
android:textSize="24sp" />
</RelativeLayout>
解决方案
你的布局一团糟。例如:
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
这两个参数不能共存。对于您想要的布局,您应该使用 LinearLayout 并将 Orientation 设置为垂直。这样,您需要做的就是将您的 UI 对象 1 写在另一个之下,它们将被放置在另一个之上。为了使它们居中,您可以使用重力和 layout_gravity
android:layout_gravity="center"
android:gravity="center"
这应该就是全部了。
编辑:只是为了让您知道,相对布局基本上将任何给定对象放置在布局的 0,0 位置。如果您创建的对象很少,它们将被放置在另一个之上。
推荐阅读
- c# - JProperty 不会为值生成双引号
- javascript - 带有 for of 循环和内部等待的异步函数,它会等待吗?
- ios - IOS 上的自定义标头在不应该显示时保持可见
- c++ - c++ AMP Concurrency::runtime_exception 在创建array_view时发生
- ruby-on-rails - Extending view to generate PDF returns error after upgrade to Rails 6.1
- c# - OnCollisionExit() 无法处理我的脚本统一性?
- javascript - 组合多个过滤器列表
- angular - 使用来自父级的初始异步数据触发表单有效事件 - Angular Reactive forms
- digital-ocean - Rasa 没有安装在 Digital Ocean 上
- react-native - Redux 减速器状态在组件中返回一个空对象