Android 动态活动启动时,布局会更改
我有一个允许创建动态EditText的布局-这很好,但它会推高静态EditText,这不是我想要的 我使用的是scrollview,因此理论上静态EditText应该固定在适当的位置,当添加动态EditText时,用户可以向下滚动 相反,随着更多的动态编辑文本的添加,我的3个静态编辑文本开始越来越近。动态EditText中的间距很好,因为它们都是同一数组的一部分,但我似乎看不到静态EditText发生了什么 任何帮助都将不胜感激Android 动态活动启动时,布局会更改,android,xml,android-layout,dynamic,Android,Xml,Android Layout,Dynamic,我有一个允许创建动态EditText的布局-这很好,但它会推高静态EditText,这不是我想要的 我使用的是scrollview,因此理论上静态EditText应该固定在适当的位置,当添加动态EditText时,用户可以向下滚动 相反,随着更多的动态编辑文本的添加,我的3个静态编辑文本开始越来越近。动态EditText中的间距很好,因为它们都是同一数组的一部分,但我似乎看不到静态EditText发生了什么 任何帮助都将不胜感激 <?xml version="1.0" encoding="
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout 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/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/facebookBlue"
android:orientation="vertical"
android:weightSum="1"
tools:context="com.test.practise.AddTeamMembers">
<android.support.design.widget.TextInputEditText
android:id="@+id/tv_teamNames"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/teamName"
android:textColor="@android:color/background_light"
android:textColorLink="@android:color/background_light"
android:textSize="30sp"
android:textStyle="bold" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.26"
android:orientation="vertical"
android:weightSum="1">
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="0.47"
android:gravity="center"
android:text="Enter Player Names Below!"
android:textColor="@android:color/background_light"
android:textSize="24sp" />
</FrameLayout >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.10"
android:orientation="vertical"
android:weightSum="1">
<EditText
android:id="@+id/et_team_name1"
android:layout_width="232dp"
android:layout_height="37dp"
android:layout_gravity="center"
android:layout_marginBottom="0dp"
android:layout_weight="1"
android:background="@android:color/background_light"
android:ems="10"
android:hint="@string/PlayerName"
android:imeOptions="actionDone"
android:inputType="text"
android:paddingLeft="90dp"
tools:layout_editor_absoluteX="76dp"
tools:layout_editor_absoluteY="188dp"
/>
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.10"
android:orientation="vertical"
android:weightSum="1">
<EditText
android:id="@+id/et_team_name2"
android:layout_width="232dp"
android:layout_height="37dp"
android:layout_gravity="center"
android:layout_marginBottom="0dp"
android:layout_weight="1"
android:background="@android:color/background_light"
android:ems="10"
android:hint="@string/PlayerName"
android:imeOptions="actionDone"
android:inputType="text"
android:paddingLeft="90dp"
android:singleLine="true"
tools:layout_editor_absoluteX="76dp"
tools:layout_editor_absoluteY="188dp"
/>
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_weight="0.10"
android:orientation="vertical"
android:weightSum="1">
<EditText
android:id="@+id/et_team_name3"
android:layout_width="232dp"
android:layout_height="37dp"
android:layout_gravity="center"
android:layout_marginBottom="0dp"
android:background="@android:color/background_light"
android:ems="10"
android:hint="@string/PlayerName"
android:imeOptions="actionDone"
android:inputType="text"
android:paddingLeft="90dp"
android:singleLine="true"
tools:layout_editor_absoluteX="76dp"
tools:layout_editor_absoluteY="188dp"
android:layout_weight="1"
/>
</FrameLayout>
<LinearLayout
android:id="@+id/editTextGroupLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical"></LinearLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.07"
android:orientation="vertical"
android:weightSum="1">
<TextView
android:id="@+id/tv_add_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="+ Add Name"
android:textColor="@android:color/background_light"
android:textSize="16dp" />
</FrameLayout >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="1">
<Button
android:id="@+id/btn_submit_team"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/facebookBlue"
android:gravity="center"
android:text="Ready to join!"
android:textColor="@android:color/background_light" />
</FrameLayout >
</LinearLayout>
</ScrollView>
很难说没有看到你所有的代码,但我相信你的问题源于在你的滚动视图上使用android:fillViewport
和在你的LinearLayout
孩子上使用android:layou weight
您的ScrollView
的子项LinearLayout
,具有wrap\u内容
高度。但是,由于ScrollView
上的fillViewport
属性,您的LinearLayout
将被拉伸以填充屏幕。这意味着会有一些“额外”的高度
layout\u weight
属性将额外的高度划分,并将其中的一部分分配给每个孩子
当您向视图动态添加EditText
s时,“额外”的高度会减少(直到没有额外的高度)。这具有将原始视图推得越来越近的视觉效果
解决方案将完全取决于您想要实现的目标。我怀疑答案是,您应该从视图中删除布局权重属性,而不是使用边距将它们直观地分开。为什么要将每个小部件包装在框架布局中?那似乎没用android:orientation=“vertical”
对框架布局不起任何作用。此外,布局定义中存在死线布局。尝试从您的父线性布局和任何子项中删除android:weightSum=“1”
,您似乎没有正确使用权重。啊,是的,方向错误地留在那里,因为我使用的是线性布局-只是真正的试验。至于“死线布局”,这在我的代码中作为动态编辑文本的一部分被引用。是的,是layout\u weight
属性导致了问题,现在一切正常,谢谢!