我最近开始了解如何在Android Studio中编码并想要设置基本编码。我创建了2个数字对象和1个按钮,1个纯文本对象。 在不编写任何代码的情况下,当我单击Android Studio上的“运行应用程序”按钮并选择任何仿真器时,所有对象都会相互堆叠。有没有一种简单的方法来解决这个问题?
以下是<% @invites.each do |i| %>
<%= form_for([i,i.answer.build]) do |f| %>
<%= f.text_field :name_of_you_answer_field %>
<%= f.submit %>
<% end %>
<% end %>
中的文字:
activity_main.xml
答案 0 :(得分:1)
看到您的布局,您目前缺少约束。对于与实际设备上的编辑器保持在同一位置的对象,COnstraints 严重。
您可以通过拖放手动添加它们来创建它们,也可以使用“推断约束”
自动添加它们答案 1 :(得分:0)
您使用约束布局作为主要布局,这意味着布局中的元素将根据约束放置,请检查Android Documentation是否使用约束布局。
答案 2 :(得分:0)
正如@RobCo所提到的,tools
命名空间属性仅适用于编辑器 :
构建应用时,构建工具会删除这些属性 对您的APK大小或运行时行为没有影响。
在布局编辑器中移动视图时,将自动生成布局文件中的tools:layout_editor_absolute
属性,并且仅用于在设计布局时将其用作参考。
相反,您应该利用app:layout_constraint...
属性,这些属性也可以在布局编辑器中创建。我建议您查看training documentation以了解如何执行此操作。
否则,正如@nbokmans所提到的,你可能想要考虑LinearLayout
;这可能会更容易包裹你的头。
答案 3 :(得分:0)
在约束布局中,您可以使用蓝色打印调整对象轻松克服重叠。例如。选择一个对象并使用点箭头(拖动时找到)和左边缘以及右边缘和底边缘拖动到顶边,然后您可以调整对象的位置。
答案 4 :(得分:0)
删除所有tools:layout_editor_absoluteX
&amp; tools:layout_editor_absoluteY
属性。
构建应用时,构建工具会删除这些属性 对您的APK大小或运行时行为没有影响
如果您想根据显示的预览和ConstraintLayout对齐所有属性,建议您详细了解ConstraintLayout以及如何Build a Responsive UI with ConstraintLayout
此外,要修复当前布局,您可以进行如下更改:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="match_parent"
tools:context="com.example.myapplication70.MainActivity">
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="32dp"
android:ems="10"
android:inputType="number"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:ems="10"
android:inputType="numberSigned"
app:layout_constraintEnd_toEndOf="@+id/editText1"
app:layout_constraintStart_toStartOf="@+id/editText1"
app:layout_constraintTop_toBottomOf="@+id/editText1" />
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:ems="10"
android:hint="Result"
android:inputType="numberDecimal"
app:layout_constraintEnd_toEndOf="@+id/editText2"
app:layout_constraintStart_toStartOf="@+id/editText2"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="32dp"
android:text="Button"
app:layout_constraintEnd_toEndOf="@+id/editText3"
app:layout_constraintStart_toStartOf="@+id/editText3"
app:layout_constraintTop_toBottomOf="@+id/editText3" />
</android.support.constraint.ConstraintLayout>
答案 5 :(得分:0)
在android studio中,你有一个名为“推断约束”的按钮。
按下该按钮,它将自动为您设置约束。