问题标签 [constraintlayout-barrier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
9920 浏览

android - 当父尺寸设置为 wrap_content 时,ConstraintLayout Barrier 无法正常工作

这是我的问题的再现:

当您将父高度设置为 时match_parent,屏障按预期工作。但是,一旦您将其设置为wrap_content,它就不会正确地进行布局。

这是它的外观wrap_content,右边是match_parent

如果有人能指出我正确的方向,将不胜感激。我没有发现有人反对以这种方式使用 Barriers,但也没有发现任何人使用这种布局。

这是我的错误还是Barrier中的错误?

0 投票
2 回答
657 浏览

android - 在 ConstraintLayout 中链接两个障碍

我将使用以下方法实现这个目标ConstraintLayout在此处输入图像描述

每个 TextView 的长度不是固定的,可能会发生变化,TextView 应该位于它们的列的中间。我猜想如果我使用链接barrier_leftbarrier_rightapp:layout_constraintHorizontal_chainStyle="spread_inside"障碍和指南可以帮助我,所以我检查了一下:

但它根本没有用!结果是:

在此处输入图像描述

这是我的设计表面:

在此处输入图像描述

我需要将所有视图保留在屏幕上(它们都不应该熄灭),并且每个视图都应该放在其列的中心。如果左列或右列较长且需要空间,我需要从中间列到左列或右列留出一些空间。如何像第一张图片中显示的那样排列视图?

0 投票
2 回答
112 浏览

android - 如何使用 AS 3.6.3 将视图/小部件限制为障碍

我最近才开始学习android开发。现在,我专注于 ConstraintLayout。

我一直在使用这个 codelab 来学习。 https://codelabs.developers.google.com/codelabs/constraint-layout/index.html?index=..%2F..%2Findex#10

我目前被困在代码实验室的障碍部分。当我尝试将其他视图限制在障碍上时,它似乎根本不与障碍交互。

在 codelab 中,读者被告知“将约束从 cameraType 的左侧拖到屏障”,但是当我这样做时,什么也没有发生。

我已经尝试在谷歌上搜索如何使用障碍进行约束,但除了在代码实验室中已经看到的信息之外,我无法找到任何信息。你如何做到这一点有变化吗?或者我必须用 Android Studio 改变什么?

还有其他人遇到这种情况吗?

编辑:为了清楚起见,这里有一个 gif 的链接(来自 codelab),这正是我正在尝试但失败的事情。

https://codelabs.developers.google.com/codelabs/constraint-layout/img/ca458bff73338979.gif

0 投票
1 回答
517 浏览

android - ConstraintLayout - 将小部件连接到障碍问题

我有一个奇怪的问题: layout.xml

我正在尝试将小部件连接到我的屏障。问题是当我尝试将END我的小部件的 与连接时barrier,没有连接(我不能这样做,我拖放没有成功)。这是我尝试连接的图像,但这是不可能的。 在此处输入图像描述

0 投票
1 回答
589 浏览

android-studio - 不能将元素约束到障碍

我遇到了一个问题,我试图将按钮限制在垂直屏障上。当我将要约束到障碍的按钮一侧拖动时,它似乎无法识别障碍。将鼠标悬停在其上并放开后,它不会捕捉到它或应用任何约束。

我尝试从 YouTube 复制一个简单的教程,他将按钮限制在障碍物上,在时间戳链接上没有问题:https ://youtu.be/Ngz5cgLC7m4?t=180 。

我知道您可以将屏障 ID 添加到 Button 的 XML 左侧约束中。但这并不能完全解决根本问题。

我还检查了我的版本当前关于障碍的变更日志(没有任何改变)。

编辑:这是我的 XML 文件:

0 投票
1 回答
178 浏览

android - ConstraintLayout 障碍不尊重组

我有一个引用三个视图的障碍。这三个视图在彼此之下,如下所示:

View D对 Barrier 有约束,View B 和 Group 在任何时候都可能成为View.GONE

此外,该最初是空的。我以编程方式扩展视图 B 下的视图,并将所有视图与组相关联。

问题是,当我将视图膨胀到组中时,视图 D不会移动并停留在视图 B 下方。

显示组、障碍和视图 D 的代码:

0 投票
1 回答
28 浏览

android - 指南不会根据 ConstraintLayout 中屏障内视图尺寸的变化而改变

我有我的根布局,就像ConstraintLayout我的活动一样。我添加了一个Guideline基于百分比的,它大约是顶部的 35%。该指南将布局分为 2 个部分(顶部 35% 和底部 65%)。在前 25% 部分我有 2 TextViews。textview 文本是动态变化的。一个Barrier添加在布局中,其中添加了我的指南。下方 65% 部分内的图像顶部约束赋予屏障底部,25% 部分内文本视图的底部约束赋予屏障顶部。当我在 textview 上方的 Text 增加时,它不会改变指南并违反 Barrier 工作。怎么做?

0 投票
1 回答
124 浏览

android - 错误:与 ConstraintLayout 中的“百分比高度”相关的屏障位于 ScrollView 内

我有一个ScrollView其中有一个ConstraintLayout.

在里面ConstraintLayout我想将 a 定位View到 a 的底部Barrier

Barrier本身有约束: a Guideline(它也可以是高度为父级一半的视图),它是ConstraintLayout的一半和 a TextView

这里的问题是ConstraintLayout由于屏幕百分比计算的一半,它将扩大更多(添加更多可滚动区域)。

尝试将Barrier约束更改为:

你明白这会Barrier阻碍计算。

我知道如何从 java 解决这个布局问题,我想要一个来自 xml 的解决方案。这可能是一个错误ConstraintLayout

0 投票
2 回答
72 浏览

android - ConstraintLayout 屏障不适用于 RecyclerView 的所有视图持有者

我在一行中有三个 TextView(Rating、VotesRating 和 Votes),但只能同时看到其中一个。这就是为什么我添加了一个Barrier带有这些 TextViews 的 ID movie_rating,movie_votes,movie_rating_votes。然后我用它在它下面Barrier添加另一个TextView(带有电影的描述)。但正如您在屏幕截图中看到的,描述文本可以在上面Barrier。这是一个如此错误的图书馆......

在此处输入图像描述

对于大多数 ViewHolders 来说,它工作正常,这太疯狂了

完整布局

方面

绑定

RecyclerView 和 ViewHolder 类

0 投票
1 回答
24 浏览

android-layout - 根据文本长度在它们之间水平平衡 2 个 TextView 和一个 ImageView

在此处输入图像描述

  • 如果 Text1 更长,则应该将所有内容推到右侧
  • 如果 Text2 更长,则应该将所有内容推向左侧
  • 否则,箭头应根据父视图居中
  • 如果任何 TextView 超出,因此整个视图超出父视图,则应修剪(椭圆)