Android 每当我更改其属性时,线性布局都会对子项重新排序
Android Linear Layout keeps reordering children whenever I change it's properties
我是一个 android 初学者,如果这是一个愚蠢的问题,请原谅我!
我正在尝试创建一个包含表单的基本 activity - 一系列问题 (TextViews),每个问题后跟一个答案字段 (EditTexts),底部有一个提交按钮。表单比屏幕稍长,所以我将它们全部包含在 ScrollView 中,然后包含在线性布局中。
但每次我更新线性布局或滚动视图的属性(例如修改容器的大小,或设置中心引力)时,我的线性布局中的项目都会重新排序,以便提交按钮位于顶部,然后是所有的 EditText,然后是所有的 TextView。 XML 也重新排序。
它不会停止我的应用程序 运行 因为我可以重新排序它们然后按开始(只要我不需要调整任何东西)但它真的很难使用,因为我已经花了很长时间重新排序它们 - 我想知道我做错了什么?
感谢任何帮助!
下面是xml(还没有附带java,activity还是空白):
<?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=".CreateNewEventActivity">
<ScrollView
android:layout_width="409dp"
android:layout_height="601dp"
android:layout_marginBottom="1dp"
android:layout_marginEnd="1dp"
android:layout_marginStart="1dp"
android:layout_marginTop="1dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical">
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CREATE" />
<EditText
android:id="@+id/dateEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="date"
android:textSize="28sp" />
<EditText
android:id="@+id/locationEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
android:textSize="28sp" />
<EditText
android:id="@+id/themeEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
android:textSize="28sp" />
<EditText
android:id="@+id/participantEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number"
android:textSize="28sp" />
<EditText
android:id="@+id/chooseEventIdEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
android:textSize="28sp" />
<TextView
android:id="@+id/introTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center|center_horizontal|center_vertical"
android:text="INTRO \n"
android:textAlignment="center"
android:textSize="40sp"
android:textStyle="bold" />
<TextView
android:id="@+id/dateTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="28sp" />
<TextView
android:id="@+id/locationTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="28sp" />
<TextView
android:id="@+id/themeTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="28sp" />
<TextView
android:id="@+id/participantTextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="28sp" />
<TextView
android:id="@+id/participantTextView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="28sp" />
<TextView
android:id="@+id/choseEventIdTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="28sp" />
</LinearLayout>
</ScrollView>
</android.support.constraint.ConstraintLayout>
desired order
reordered after amending the size of the LinerLayout
这是 android Studio 来自 Android Studio 3.5 Canary 8 的已知问题,已在 Android studio version 3.5.2 中修复(查看 问题#129457736了解更多详情)。所以您需要做的就是更新您的 Android Studio 版本。
When editing XML code, the IDE might apply an incorrect code style
when you select Code > Reformat Code from the menu bar. To fix this
issue, reset the appropriate Android code style as follows.
如果您想保留 Android Studio 版本,请执行以下操作:
- 通过单击文件 > 设置(在 macOS 上,Android Studio > 首选项)打开设置 window。
- 在左侧面板中,单击编辑器 > 代码样式 > XML。
- 在右侧面板的右上角附近,select Set from > Predefined Style > Android
- 单击“确定”(您可能需要重新启动 Android Studio)
我是一个 android 初学者,如果这是一个愚蠢的问题,请原谅我!
我正在尝试创建一个包含表单的基本 activity - 一系列问题 (TextViews),每个问题后跟一个答案字段 (EditTexts),底部有一个提交按钮。表单比屏幕稍长,所以我将它们全部包含在 ScrollView 中,然后包含在线性布局中。
但每次我更新线性布局或滚动视图的属性(例如修改容器的大小,或设置中心引力)时,我的线性布局中的项目都会重新排序,以便提交按钮位于顶部,然后是所有的 EditText,然后是所有的 TextView。 XML 也重新排序。
它不会停止我的应用程序 运行 因为我可以重新排序它们然后按开始(只要我不需要调整任何东西)但它真的很难使用,因为我已经花了很长时间重新排序它们 - 我想知道我做错了什么?
感谢任何帮助!
下面是xml(还没有附带java,activity还是空白):
<?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=".CreateNewEventActivity">
<ScrollView
android:layout_width="409dp"
android:layout_height="601dp"
android:layout_marginBottom="1dp"
android:layout_marginEnd="1dp"
android:layout_marginStart="1dp"
android:layout_marginTop="1dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical">
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CREATE" />
<EditText
android:id="@+id/dateEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="date"
android:textSize="28sp" />
<EditText
android:id="@+id/locationEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
android:textSize="28sp" />
<EditText
android:id="@+id/themeEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
android:textSize="28sp" />
<EditText
android:id="@+id/participantEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number"
android:textSize="28sp" />
<EditText
android:id="@+id/chooseEventIdEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name"
android:textSize="28sp" />
<TextView
android:id="@+id/introTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center|center_horizontal|center_vertical"
android:text="INTRO \n"
android:textAlignment="center"
android:textSize="40sp"
android:textStyle="bold" />
<TextView
android:id="@+id/dateTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="28sp" />
<TextView
android:id="@+id/locationTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="28sp" />
<TextView
android:id="@+id/themeTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="28sp" />
<TextView
android:id="@+id/participantTextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="28sp" />
<TextView
android:id="@+id/participantTextView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="28sp" />
<TextView
android:id="@+id/choseEventIdTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="28sp" />
</LinearLayout>
</ScrollView>
</android.support.constraint.ConstraintLayout>
desired order reordered after amending the size of the LinerLayout
这是 android Studio 来自 Android Studio 3.5 Canary 8 的已知问题,已在 Android studio version 3.5.2 中修复(查看 问题#129457736了解更多详情)。所以您需要做的就是更新您的 Android Studio 版本。
When editing XML code, the IDE might apply an incorrect code style when you select Code > Reformat Code from the menu bar. To fix this issue, reset the appropriate Android code style as follows.
如果您想保留 Android Studio 版本,请执行以下操作:
- 通过单击文件 > 设置(在 macOS 上,Android Studio > 首选项)打开设置 window。
- 在左侧面板中,单击编辑器 > 代码样式 > XML。
- 在右侧面板的右上角附近,select Set from > Predefined Style > Android
- 单击“确定”(您可能需要重新启动 Android Studio)