javaandroidstudio中的约束错误
我只能找到一个与此相关的线程,而答案无助于修复错误。如果有必要的话,我正在一台新的笔记本电脑上安装新的Android Studio(也许我需要安装一些当前不存在的东西) 错误:此视图不受约束,它只有设计时位置,因此除非添加约束,否则它将跳转到(0,0) 编辑2:新版本的Android Studio似乎没有使用相对布局?我已尝试按照此线程()手动更改代码。仍然不起作用 编辑: 下面是来自上一个项目的代码示例(如您所见,这与我当前的实际代码不同):javaandroidstudio中的约束错误,java,android-studio,android-layout,Java,Android Studio,Android Layout,我只能找到一个与此相关的线程,而答案无助于修复错误。如果有必要的话,我正在一台新的笔记本电脑上安装新的Android Studio(也许我需要安装一些当前不存在的东西) 错误:此视图不受约束,它只有设计时位置,因此除非添加约束,否则它将跳转到(0,0) 编辑2:新版本的Android Studio似乎没有使用相对布局?我已尝试按照此线程()手动更改代码。仍然不起作用 编辑: 下面是来自上一个项目的代码示例(如您所见,这与我当前的实际代码不同): 下面是我的主要活动代码,该代码给出了上述错误x
下面是我的主要活动代码,该代码给出了上述错误x4(按钮/textView x2/radiogroup)
提前谢谢。您需要添加一些缺少的约束,下面是如何做到这一点的
您需要添加一些缺少的约束,下面是如何做到这一点
首先,在组件树中有
ConstraintLayout left
单击它,弹出列表打开,然后按照以下步骤操作:-
首先,在组件树中有
ConstraintLayout left
单击它,弹出列表打开,然后按照以下步骤操作:-
使用
ConstraintLayout
时,必须在垂直和水平方向上约束视图,否则视图可能会在运行时跳转到屏幕的一角
在您约束之后,正如我所说的,您的视图将根据您的约束放置,并相对于您的屏幕-并且您的视图在运行时不会跳转
使用constraintLayout创建此布局的示例:
<androidx.constraintlayout.widget.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">
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:text="app_title"
android:textSize="24sp"
android:textStyle="bold|italic"
app:layout_constraintBottom_toTopOf="@+id/editText_usd"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.032" />
<EditText
android:id="@+id/editText_usd"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:hint="us_label"
android:inputType="numberDecimal"
android:textAlignment="center"
android:textSize="12sp"
app:layout_constraintBottom_toTopOf="@+id/radioGrp"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toBottomOf="@+id/textView8" />
<RadioGroup
android:id="@+id/radioGrp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
app:layout_constraintBottom_toTopOf="@+id/buttonConvert"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toBottomOf="@+id/editText_usd">
<RadioButton
android:id="@+id/radioButtonEuro"
android:layout_width="98dp"
android:layout_height="wrap_content"
android:text="euro_label" />
<RadioButton
android:id="@+id/radioButtonCanada"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="canada_label" />
<RadioButton
android:id="@+id/radioButtonMexico"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="mex_label" />
</RadioGroup>
<Button
android:id="@+id/buttonConvert"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="convert_label"
android:textAlignment="center"
app:layout_constraintBottom_toTopOf="@+id/textViewResults"
app:layout_constraintEnd_toEndOf="@+id/editText_usd"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@+id/editText_usd"
app:layout_constraintTop_toBottomOf="@+id/radioGrp" />
<TextView
android:id="@+id/textViewResults"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:text="some text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/buttonConvert"
app:layout_constraintStart_toStartOf="@+id/buttonConvert"
app:layout_constraintTop_toBottomOf="@+id/buttonConvert" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.05" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.95" />
</androidx.constraintlayout.widget.ConstraintLayout>
使用
ConstraintLayout
时,必须垂直和水平约束视图,否则视图可能在运行时跳转到屏幕的一角
在您约束之后,正如我所说的,您的视图将根据您的约束放置,并相对于您的屏幕-并且您的视图在运行时不会跳转
使用constraintLayout创建此布局的示例:
<androidx.constraintlayout.widget.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">
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:text="app_title"
android:textSize="24sp"
android:textStyle="bold|italic"
app:layout_constraintBottom_toTopOf="@+id/editText_usd"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.032" />
<EditText
android:id="@+id/editText_usd"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:hint="us_label"
android:inputType="numberDecimal"
android:textAlignment="center"
android:textSize="12sp"
app:layout_constraintBottom_toTopOf="@+id/radioGrp"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toBottomOf="@+id/textView8" />
<RadioGroup
android:id="@+id/radioGrp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
app:layout_constraintBottom_toTopOf="@+id/buttonConvert"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toBottomOf="@+id/editText_usd">
<RadioButton
android:id="@+id/radioButtonEuro"
android:layout_width="98dp"
android:layout_height="wrap_content"
android:text="euro_label" />
<RadioButton
android:id="@+id/radioButtonCanada"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="canada_label" />
<RadioButton
android:id="@+id/radioButtonMexico"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="mex_label" />
</RadioGroup>
<Button
android:id="@+id/buttonConvert"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="convert_label"
android:textAlignment="center"
app:layout_constraintBottom_toTopOf="@+id/textViewResults"
app:layout_constraintEnd_toEndOf="@+id/editText_usd"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@+id/editText_usd"
app:layout_constraintTop_toBottomOf="@+id/radioGrp" />
<TextView
android:id="@+id/textViewResults"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:text="some text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/buttonConvert"
app:layout_constraintStart_toStartOf="@+id/buttonConvert"
app:layout_constraintTop_toBottomOf="@+id/buttonConvert" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.05" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.95" />
</androidx.constraintlayout.widget.ConstraintLayout>
的可能重复根据我的经验,“清除所有约束”按钮的行为是随机的。它肯定不会一致地清除布局中的所有约束。根据我的经验,“清除所有约束”按钮的行为是随机的。它肯定不会一致地清除布局中的所有约束。
<androidx.constraintlayout.widget.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">
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:text="app_title"
android:textSize="24sp"
android:textStyle="bold|italic"
app:layout_constraintBottom_toTopOf="@+id/editText_usd"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.032" />
<EditText
android:id="@+id/editText_usd"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:hint="us_label"
android:inputType="numberDecimal"
android:textAlignment="center"
android:textSize="12sp"
app:layout_constraintBottom_toTopOf="@+id/radioGrp"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toBottomOf="@+id/textView8" />
<RadioGroup
android:id="@+id/radioGrp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
app:layout_constraintBottom_toTopOf="@+id/buttonConvert"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toBottomOf="@+id/editText_usd">
<RadioButton
android:id="@+id/radioButtonEuro"
android:layout_width="98dp"
android:layout_height="wrap_content"
android:text="euro_label" />
<RadioButton
android:id="@+id/radioButtonCanada"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="canada_label" />
<RadioButton
android:id="@+id/radioButtonMexico"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="mex_label" />
</RadioGroup>
<Button
android:id="@+id/buttonConvert"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="convert_label"
android:textAlignment="center"
app:layout_constraintBottom_toTopOf="@+id/textViewResults"
app:layout_constraintEnd_toEndOf="@+id/editText_usd"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@+id/editText_usd"
app:layout_constraintTop_toBottomOf="@+id/radioGrp" />
<TextView
android:id="@+id/textViewResults"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:text="some text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/buttonConvert"
app:layout_constraintStart_toStartOf="@+id/buttonConvert"
app:layout_constraintTop_toBottomOf="@+id/buttonConvert" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.05" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.95" />
</androidx.constraintlayout.widget.ConstraintLayout>