我刚开始学习如何开发Android应用程序,ConstraintLayout的这个问题从一开始就出现了。我正在使用Android Studio 2.2.3。
从上面的示例中可以看出,所有项目都已经脱离了各自的蓝图或设计布局。当发生这种情况时,我无法将它们拖回原本应该的位置。
没有确切的方法可以复制此问题。每当我使用ConstraintLayout时,它似乎随机发生。它甚至发生在我不碰它的时候。我可能不会做其他事情,但当我回到Android Studio时,一切都出了问题。我尝试过的其他布局不会发生这种情况。
我尝试过“无效缓存/重启”以及清理和重建项目。前者可能会解决一个布局的问题,但不幸的是其他布局会受到这个问题的影响。
非常感谢任何帮助。我不知道有多少次重做布局。这是非常令人沮丧的。
第一个示例XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_set_up"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.richl.candito6week.setUp">
<include
android:id="@+id/appBar"
layout="@layout/app_bar"
android:layout_width="384dp"
android:layout_height="wrap_content"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp" />
<EditText
android:id="@+id/benchNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="8dp"
android:ems="10"
android:gravity="center_vertical|center_horizontal"
android:inputType="numberDecimal"
android:textAlignment="center"
card_view:layout_constraintRight_toRightOf="parent"
card_view:layout_constraintTop_toBottomOf="@+id/separator2" />
<EditText
android:id="@+id/deadNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="8dp"
android:ems="10"
android:gravity="center_vertical|center_horizontal"
android:inputType="numberDecimal"
android:textAlignment="center"
card_view:layout_constraintRight_toRightOf="parent"
card_view:layout_constraintTop_toBottomOf="@+id/separator3" />
<View
android:id="@+id/separator3"
android:layout_width="368dp"
android:layout_height="1dp"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:background="@android:color/darker_gray"
card_view:layout_constraintLeft_toLeftOf="parent"
card_view:layout_constraintRight_toRightOf="parent"
card_view:layout_constraintTop_toBottomOf="@+id/benchNum" />
<EditText
android:id="@+id/squatNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="16dp"
android:ems="10"
android:gravity="center_vertical|center_horizontal"
android:inputType="numberDecimal"
android:textAlignment="center"
card_view:layout_constraintRight_toRightOf="parent"
card_view:layout_constraintTop_toBottomOf="@+id/repMax_card" />
<TextView
android:id="@+id/benchText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="8dp"
android:layout_marginStart="16dp"
android:gravity="center_vertical|center_horizontal"
android:padding="4dp"
android:text="@string/bench_press"
android:textAlignment="center"
android:textStyle="normal|bold"
card_view:layout_constraintBaseline_toBaselineOf="@+id/benchNum"
card_view:layout_constraintLeft_toLeftOf="parent"
card_view:layout_constraintRight_toLeftOf="@+id/benchNum" />
<TextView
android:id="@+id/deadText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="8dp"
android:layout_marginStart="16dp"
android:gravity="center_vertical|center_horizontal"
android:padding="4dp"
android:text="@string/deadlift"
android:textAlignment="center"
android:textStyle="normal|bold"
card_view:layout_constraintBaseline_toBaselineOf="@+id/deadNum"
card_view:layout_constraintLeft_toLeftOf="parent"
card_view:layout_constraintRight_toLeftOf="@+id/deadNum" />
<TextView
android:id="@+id/squat_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="8dp"
android:layout_marginStart="16dp"
android:gravity="center_vertical|center_horizontal"
android:padding="4dp"
android:text="@string/squat"
android:textAlignment="center"
android:textStyle="normal|bold"
card_view:layout_constraintBaseline_toBaselineOf="@+id/squatNum"
card_view:layout_constraintLeft_toLeftOf="parent"
card_view:layout_constraintRight_toLeftOf="@+id/squatNum" />
<View
android:id="@+id/separator2"
android:layout_width="368dp"
android:layout_height="1dp"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:background="@android:color/darker_gray"
card_view:layout_constraintLeft_toLeftOf="parent"
card_view:layout_constraintRight_toRightOf="parent"
card_view:layout_constraintTop_toBottomOf="@+id/squatNum" />
<android.support.v7.widget.CardView
android:id="@+id/spinner_card"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
card_view:cardCornerRadius="4dp"
card_view:layout_constraintLeft_toLeftOf="parent"
card_view:layout_constraintRight_toRightOf="parent"
card_view:layout_constraintTop_toBottomOf="@+id/trackWeights_card">
<Spinner
android:id="@+id/weightSpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4dp"
tools:layout_editor_absoluteX="191dp"
tools:layout_editor_absoluteY="75dp" />
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/repMax_card"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
card_view:layout_constraintLeft_toLeftOf="parent"
card_view:layout_constraintRight_toRightOf="parent"
card_view:layout_constraintTop_toBottomOf="@+id/spinner_card">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:padding="4dp"
android:text="@string/what_are_your_1rm_s_for_the_following_lifts"
android:textAlignment="center"
android:textSize="18sp"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="16dp" />
</android.support.v7.widget.CardView>
<Button
android:id="@+id/setUp1Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:text="@string/next"
card_view:layout_constraintBottom_toBottomOf="parent"
card_view:layout_constraintLeft_toLeftOf="parent"
card_view:layout_constraintRight_toRightOf="parent"
card_view:layout_constraintTop_toBottomOf="@+id/deadNum" />
<android.support.v7.widget.CardView
android:id="@+id/trackWeights_card"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
card_view:cardCornerRadius="2dp"
card_view:layout_constraintLeft_toLeftOf="parent"
card_view:layout_constraintRight_toRightOf="parent"
card_view:layout_constraintTop_toBottomOf="@+id/appBar">
<TextView
android:id="@+id/textView"
android:layout_width="326dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_margin="4dp"
android:paddingBottom="4dp"
android:paddingEnd="4dp"
android:paddingStart="4dp"
android:paddingTop="4dp"
android:text="@string/do_you_track_your_weights_in_kilograms_or_pounds"
android:textAlignment="center"
android:textSize="18sp"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp" />
</android.support.v7.widget.CardView>
</android.support.constraint.ConstraintLayout>
第二个示例XML:
<?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:id="@+id/activity_choose_accessory_workouts"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.richl.candito6week.chooseAccessoryWorkouts">
<include
android:id="@+id/include2"
layout="@layout/app_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:layout_constraintLeft_creator="1"
tools:layout_constraintRight_creator="1"
tools:layout_constraintTop_creator="1" />
<android.support.v7.widget.CardView
android:id="@+id/chooseAccessory_card"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/include2">
<TextView
android:id="@+id/chooseAccessory_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_margin="4dp"
android:padding="4dp"
android:text="@string/choose_your_preferred_accessory_exercises"
android:textAlignment="center"
android:textSize="18sp" />
</android.support.v7.widget.CardView>
<TextView
android:id="@+id/chooseBack1_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:padding="4dp"
android:text="@string/upper_back_exercise_1_horizontal_pull"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chooseAccessory_card"
tools:layout_constraintTop_creator="1" />
<Spinner
android:id="@+id/chooseBack1_spinner"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:padding="4dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chooseBack1_view" />
<TextView
android:id="@+id/chooseShoulder_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:padding="4dp"
android:text="@string/shoulder_exercise"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chooseBack1_spinner"
tools:layout_constraintLeft_creator="1" />
<Spinner
android:id="@+id/shoulderExercise_spinner"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:padding="4dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chooseShoulder_view" />
<TextView
android:id="@+id/chooseBack2_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:padding="4dp"
android:text="@string/upper_back_exercise_2_vertical_string_upper_back_exercise_1_horizontal_pull"
android:textAlignment="center"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/shoulderExercise_spinner" />
<Spinner
android:id="@+id/chooseBack2_spinner"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_marginEnd="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:padding="4dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chooseBack2_view" />
<Button
android:id="@+id/accessoryWorkoutButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginTop="40dp"
android:text="@string/next"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chooseBack2_spinner"
tools:layout_constraintLeft_creator="1"
tools:layout_constraintRight_creator="1"
tools:layout_constraintTop_creator="1" />
</android.support.constraint.ConstraintLayout>