- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
最近尝试实现 Constraint Layout
但我发现 Barrier
和 Guideline
工作方式相同。 两者都像分隔线一样工作.它们之间有什么区别吗?
最佳答案
假设您有两个具有动态高度的 TextView
小部件,并且您想在最高的 TextView
下方放置一个 Button
:
ONLY 直接在布局中实现的方法是使用水平 Barrier
。 Barrier
允许您根据这两个 TextView
的高度指定约束。然后将 Button
的顶部约束到水平 Barrier
的底部。
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/left_text_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
android:textSize="16sp"
android:background="#AAA"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/right_text_view"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/right_text_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:text="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
android:textSize="16sp"
android:background="#DDD"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/left_text_view"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="left_text_view,right_text_view" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:text="Button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/barrier" />
</androidx.constraintlayout.widget.ConstraintLayout>
假设您想将上述 TextView
的高度限制为屏幕高度的 30%,无论它们有什么内容。
要实现这一点,您应该添加具有百分比位置的水平 Guideline
并将 TextView
底部限制到该 Guideline
。
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/left_text_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:background="#AAA"
android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toStartOf="@+id/right_text_view"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/right_text_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:background="#DDD"
android:text="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/left_text_view"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:text="Button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.3" />
</androidx.constraintlayout.widget.ConstraintLayout>
Barrier
和 Guideline
的唯一区别是 Barrier
的位置是灵活的,并且总是基于所包含的多个 UI 元素的大小在其中,Guideline
的位置始终是固定的。
关于android - 约束布局中的 Barrier 和 Guideline 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47114672/
看完F# Component Design Guidelines ,我没有看到任何评论是否应该声明模块及其类型具有相同的名称。 通常我的项目没有任何循环依赖,所以我不需要创建一个新模块(例如 Infr
我有 .NET 背景,现在正在涉足 Java。 目前,我在设计一个针对错误输入的防御性 API 时遇到了很大的问题。假设我有以下代码(足够接近): public void setTokens(Node
需要有关 Java 接口(interface)命名模式的简短答案。 为什么大多数JAVA接口(interface)名称后缀都有“able”? 例如 java.io.Serializable java.
msvc的cpp核心准则代码分析器告诉我 Warning C26472 Don't use a static_cast for arithmetic conversions. Use brace in
我完全同意下面的导航 假设 Book 详细信息是在 BookDetailActivity 的不同实例中创建的。 book2 详情中压上前的栈是: BookDetailActivity(第 2 本书 -
我已经查看了应用评论的官方应用指南,但可以得到答案。我正在开发一个应用程序,它将获取用户的电话联系人并将它们存储在我的服务器上。然后,这些联系人将对某些其他应用程序用户可见。假设我提醒用户他们的联系人
我得到了这个设置: ... 现在,当 View 未满并且不需要滚动条时 - 一切都按预期工作 - 图像相对于屏幕尺寸为 35
我得到了这个设置: ... 现在,当 View 未满并且不需要滚动条时 - 一切都按预期工作 - 图像相对于屏幕尺寸为 35
如何以编程方式创建 ConstraintLayouts 和 Guidelines?我已经尝试使用以下代码创建一个简单的布局,该布局使用指南将 View 锚定到屏幕中间,但它在屏幕左侧呈现红色“v” V
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 7 年前。 Improve
这个问题在这里已经有了答案: How Non-Member Functions Improve Encapsulation (8 个答案) 关闭 5 年前。 C++ Core Guidelines
很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。 visit the help center 帮助澄清这个问题以便重新打开它。 11
我想尝试使用 Core Guidelines checker tool在 VS2015 下的 C++11/14 项目上。 在我的代码中,我使用了很多来自 Boost 的库,它们触发了很多警告。我不关心
App Store Review Guidelines 说:“以任何方式或形式下载代码的应用程序将被拒绝。” 我想制作一个使用挑战-响应进行身份验证的应用程序。该应用程序具有一套基本算法,例如 SHA
最近尝试实现 Constraint Layout 但我发现 Barrier 和 Guideline 工作方式相同。 两者都像分隔线一样工作.它们之间有什么区别吗? 最佳答案 何时使用障碍 假设您有两个
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我正在尝试找到一种简单的方法来为 Plottable.js 中的 GuideLineLayer 着色。 到目前为止我尝试了以下方法。 1) 尝试在 onAnchor() 内使用 attr()这会将 a
我正在尝试使用以下方法设置新代理: java -javaagent:agent.jar 当我运行时,我看到 java 使用消息。 list .MF: Manifest-Version: 1.0 Cre
有问题的应用程序将包含用于解锁功能的典型不可更新订阅模型,但也将有另一种机制来访问其他功能。 此应用程序将允许用户购买(假设为消耗品)在固定期限内为另一用户访问完整功能。当然,该应用程序必须在其自己的
我下载了一些数据并将其保存到 Library/PrivateDocuments 目录。我在这个 Library/PrivateDocuments 目录中下载的每个文件都设置了“不备份”属性。苹果仍然说
我是一名优秀的程序员,十分优秀!