项目在 Android Studio 模拟器中的位置错误
Posted
技术标签:
【中文标题】项目在 Android Studio 模拟器中的位置错误【英文标题】:Items are in wrong place in Android Studio emulator 【发布时间】:2017-08-01 03:19:02 【问题描述】:我是 android studio 新手,这是我的第一个应用。 它工作正常,但模拟器出现问题,它在错误的位置显示按钮。
<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_
android:layout_
tools:context="com.example.dell_pc.myapplication.MainActivity">
<EditText
android:id="@+id/txtyear"
android:layout_
android:layout_
android:ems="10"
android:hint="Enter year of birth"
android:inputType="number"
tools:layout_editor_absoluteY="129dp"
tools:layout_editor_absoluteX="96dp" />
<Button
android:id="@+id/butage"
android:layout_
android:layout_
android:onClick="BuGetAge"
android:text="Show Age"
tools:layout_editor_absoluteY="277dp"
tools:layout_editor_absoluteX="135dp" />
</android.support.constraint.ConstraintLayout>
我怎样才能让它出现在正确的位置?
【问题讨论】:
【参考方案1】:在activity_main.xml中选择组件/项目(例如BUTTON)->点击“推断约束(如附件中所示)”
您的物品将在 ASE 中正确放置
对其余组件/项目执行相同操作
【讨论】:
【参考方案2】:你绝对需要使用约束布局吗?如果没有,您可以使用相对布局,并像这样使用 layout_centerHorizontal 和 layout_centerVertical:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_ android:layout_>
<EditText
android:id="@+id/edittext"
android:layout_
android:layout_
android:hint="blah blah"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
/>
<Button
android:id="@+id/button"
android:layout_
android:layout_
android:text="press"
android:layout_centerHorizontal="true"
android:layout_below="@id/edittext"
/>
</RelativeLayout>
【讨论】:
谢谢:D,这是我的第一个应用程序,所以我不知道相关布局的事情,解决了:)【参考方案3】:tools:layout_editor_absoluteY 和 tools 命名空间中的其他属性仅在布局编辑器中有效。您的工作代码不使用这些属性,因此您的视图位于左上角,因为这是默认设置。如上所述,RelativeLayout 甚至 LinearLayout 更适合这种简单的布局。
【讨论】:
【参考方案4】:单击一个元素,然后单击设计视图上方工具栏中的 Magic Wand 图标以推断约束,因此该元素在运行时不会跳转到 (0, 0) 位置。
【讨论】:
是的,魔杖成功了,谢谢。它到底在做什么?代码/xml有什么变化? @sb4 没问题。 wand 根据程序员放置元素的位置推断元素的约束。【参考方案5】:只是改变:
</android.support.constraint.ConstraintLayout>
到
</RelativeLayout>
问题解决了!开心点:D
【讨论】:
您确定仅将约束更改为相对就可以解决问题吗?您还需要删除 tools:layout_editor_absoluteY="129dp" 等约束和所需的约束 Google 一直建议开发人员使用约束布局来提高性能(平面视图层次结构)。以上是关于项目在 Android Studio 模拟器中的位置错误的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin Visual Studio 中的 Android 模拟器不显示应用程序
Ecplise项目转移到Android Studio,以及Genymotion模拟器介绍
将 Maven 项目从 Eclipse 导入 Android Studio