ConstraintLayout Barrier 在设计视图中不可见
Posted
技术标签:
【中文标题】ConstraintLayout Barrier 在设计视图中不可见【英文标题】:ConstraintLayout Barrier not visible in design view 【发布时间】:2019-07-03 10:40:18 【问题描述】:我正在尝试在 android Studio 中为我的 ConstraintLayout
添加一个障碍,但它没有在设计视图中以应有的方式显示。
我一直在关注this tutorial,但我无法正常工作。
我目前正在使用:
Android Studio 3.1.1androidx.constraintlayout:constraintlayout:1.1.3
我尝试过的事情:
使缓存无效/重新启动 删除属性tools:layout_editor_absoluteX
摆弄!
这是我的test.xml
:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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_>
<Button
android:text="Button"
android:layout_
android:layout_
android:id="@+id/button" android:layout_marginTop="8dp"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="8dp"/>
<Button
android:text="Button"
android:layout_
android:layout_
android:id="@+id/button2" android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/button" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="8dp"/>
<androidx.constraintlayout.widget.Barrier android:layout_ android:layout_
android:id="@+id/barrier2" app:barrierDirection="end"
app:constraint_referenced_ids="button,button2"
tools:layout_editor_absoluteX="411dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
在设计视图中,它看起来像this
屏障卡在布局的边缘,无论我做什么都不会移动。如果我设置 barrierDirection
start
或 left
它根本不可见。如果我设置了end
或right
,虚线会出现,但会卡在布局的左侧。
另一个项目中的障碍seem to work fine 是从头开始的,但这使用android.support.constraint.ConstraintLayout
而不是androidx
库。
【问题讨论】:
我对从 com.android.support.constraint:constraint-layout:1.1.3 创建的障碍有同样的问题 【参考方案1】:升级到版本 2.0.0-alpha3
为我解决了这个问题。
【讨论】:
在 2.0.0-alpha3 上测试过。有趣的是,2.0.0-beta3 的设计视图已损坏 确认,2.0.0-beta3
> 2.0.0-alpha3
,但错误在2.0.0-beta3
【参考方案2】:
这也发生在我身上。解决这个问题的方法是关闭 Android Studio 并再次打开它。
您也可以升级到版本2.0.0-alpha3
【讨论】:
【参考方案3】:我也无法显示障碍,直到我将布局名称从 app:constraint_referenced_ids 列表。然后屏障出现了。
【讨论】:
【参考方案4】:当我将constraintLayout 库从版本2.0.4
升级到2.1.3
时,障碍搞砸了。
我改变了我的障碍的宽度和高度如下,问题解决了。
之前:
<androidx.constraintlayout.widget.Barrier
android:id="@+id/myBarrier"
android:layout_
android:layout_
app:barrierDirection="end"
app:constraint_referenced_ids="textView1,textView2,textView3"
app:layout_constraintEnd_toEndOf="parent" />
之后:
<androidx.constraintlayout.widget.Barrier
android:id="@+id/myBarrier"
android:layout_
android:layout_
...
/>
【讨论】:
以上是关于ConstraintLayout Barrier 在设计视图中不可见的主要内容,如果未能解决你的问题,请参考以下文章
ConstraintLayout Barrier 在设计视图中不可见
我正在为使用 ConstraintLayout 和 Barrier 的 Android 布局而苦苦挣扎
Android开发 - 掌握ConstraintLayout障碍线(Barrier)
在包中找不到属性“barrierDirection”的资源标识符 - ConstraintLayout Barrier