此视图不受约束,它只有设计时位置,因此除非添加约束,否则它将跳转到(0,0)。
布局编辑器允许您将小部件放在画布上的任何位置,并使用设计时属性(例如layout_editor_absoluteX)记录当前位置。这些属性不会在运行时应用,因此如果您在设备上推送布局,窗口小部件可能出现在与编辑器中显示的位置不同的位置。要解决此问题,请通过从边连接拖动来确保窗口小部件具有水平和垂直约束。
答案 0 :(得分:6)
这可能会帮助某人。 我在使用Android Studio 3.1时遇到了同样的问题,但是我没有找到这些选项(约束布局->推断布局)。 然后,在仔细检查之后,我在布局窗口上方找到了“推断约束”选项(请参阅下面的步骤1中的屏幕截图)
第1步:点击“推断约束”。这可以解决您的问题,但是如果您的小部件仍然不可见(如我的情况),请执行步骤2。
第2步:点击“ AppTheme”,然后选择“ NoTitleBar”主题,如屏幕截图所示
这解决了我的问题。
答案 1 :(得分:5)
在Android Studio中右键单击设计布局,然后选择“约束布局”并打开子菜单,然后选择“推断布局”并编译您的应用程序。
答案 2 :(得分:1)
Android Studio提示说:
此视图不受限制。它仅具有设计时位置,因此除非您添加较少的约束,否则它将在运行时跳至(0,0)...(Ctrl + F1) 布局编辑器允许您将小部件放置在画布上的任何位置,并使用设计时属性(例如layout_editor_absoluteX)记录当前位置。这些属性不会在运行时应用,因此,如果您在设备上推送布局,则小部件可能会出现在与编辑器所示位置不同的位置。
要解决此问题,请通过拖动边缘连接来确保小部件具有水平和垂直约束。
答案 3 :(得分:0)
在我的项目中,此错误是由android:layout_width="fill_parent"
和android:layout_height="fill_parent"
表达式引起的。 fill_parent
常量已过时。更改为match_parent
可解决问题:
<ViewFlipper
android:id="@+id/viewFlipper1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
</ViewFlipper>
答案 4 :(得分:0)
从Android Studio v3及更高版本中,推断约束已从下拉列表中删除。
使用设计预览上方工具栏菜单中的魔术棒图标;有“推断约束”按钮。单击此按钮,这将自动在文本字段中添加一些行,并且红线将被删除。
答案 5 :(得分:0)
将以下代码段添加到您的代码中:
if (timeGap == 1) {
if (limitGap == 50000) {
if (carValue < 50000) {
document.getElementById('total-cost').innerHTML = 310;
} else if (50001 < carValue < 100000) {
document.getElementById('total-cost').innerHTML = 1233;
} else if (100001 < carValue < 150000) {
document.getElementById('total-cost').innerHTML = 12333;
} else if (150001 < carValue < 200000) {
document.getElementById('total-cost').innerHTML = 133321;
}
答案 6 :(得分:0)
这是我的解决方法(100%正常工作):
1,请拖放您在“可绘制”文件夹中输入的图像。请注意保留原始名称
2,点击播放(绿色三角形)按钮
3,显示错误,请单击您的图片,然后右键单击> 重构> 重命名> 所有地方> 重构,然后再次运行该应用程序> 重新启动
请注意,图像名称不得包含“-”,“ _”
运行该应用程序时,它将名称保存到内存中,因此只需使用原始名称重新输入该图像,然后单击 Refactor> Rename> 输入其他名称(不得包含任何字符) >选择所有位置(这会将整个损坏的名称更改为更好的名称)>重构并重新运行您的应用程序!