但是在应用程序中,它呈现为:
我不明白为什么在这种情况下链功能不起作用。如何针对此实例进行修复,以及通常如何掌握如何正确构建链条?
<?xml version="1.0" encoding="utf-8"?>
<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_width="match_parent"
android:layout_height="match_parent">
<ImageButton
android:id="@+id/verfügungButton"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginStart="8dp"
android:scaleType="fitCenter"
android:src="@drawable/icons8_home_50"
app:layout_constraintEnd_toStartOf="@+id/ramhat" />
<ImageButton
android:id="@+id/ramhat"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:scaleType="fitCenter"
android:src="@drawable/icons8_settings_50"
app:layout_constraintEnd_toStartOf="@+id/kuerzel"
app:layout_constraintStart_toEndOf="@id/verfügungButton"
/>
<TextView
android:id="@+id/kuerzel"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginStart="8dp"
android:text="Text2"
app:layout_constraintEnd_toStartOf="@+id/rubrik"
app:layout_constraintStart_toEndOf="@id/ramhat" />
<TextView
android:id="@+id/rubrik"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="Text1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/kuerzel" />
</android.support.constraint.ConstraintLayout>
答案 0 :(得分:1)
像这样更改第一个ImageButton:
<ImageButton
android:id="@+id/verfügungButton"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginStart="8dp"
android:scaleType="fitCenter"
android:src="@drawable/icons8_home_50"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/ramhat" />
您在链的第一个元素中损失了app:layout_constraintStart_toStartOf="parent"
。
UPD: 在此处查看更多信息:https://developer.android.com/training/constraint-layout/
仅当链的两端都约束到同一轴上的另一个对象时,链才能正常工作,如图14所示。
答案 1 :(得分:1)
在我的设计器中,此xml看起来完全像应用程序运行时显示的一样。
要获得布局,您需要将其更改为此(删除了大部分xml):
android:id="@+id/kuerzel"
android:text="Text1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:id="@+id/kuerzel"
android:text="Text2"
app:layout_constraintEnd_toStartOf="@+id/rubrik"
android:id="@+id/ramhat"
app:layout_constraintEnd_toStartOf="@+id/kuerzel"
android:id="@+id/verfügungButton"
app:layout_constraintEnd_toStartOf="@+id/ramhat"
答案 2 :(得分:1)
从技术上讲,您发布的内容不是“链”。当多个视图具有两者的开始和结束约束,并且所有视图彼此链接(或链接到另一个视图/链的末尾的父视图)时,便形成了一个链。因为您的第一个ImageButton
仅具有结束约束,所以它不是链。
当然,那很好。您可能甚至根本不需要链,因为您希望所有内容都滑到父级的末尾。
但是请记住这一点,这意味着我们可以更改您现有的约束。删除所有app:layout_constraintStart_toEndOf
约束:
<ImageButton
android:id="@+id/verfügungButton"
app:layout_constraintEnd_toStartOf="@+id/ramhat"/>
<ImageButton
android:id="@+id/ramhat"
app:layout_constraintEnd_toStartOf="@+id/kuerzel"/>
<TextView
android:id="@+id/kuerzel"
app:layout_constraintEnd_toStartOf="@+id/rubrik"/>
<TextView
android:id="@+id/rubrik"
app:layout_constraintEnd_toEndOf="parent"/>
这可以清楚地说明依赖项是什么,并且所有内容都可以根据需要滑动到视图的末尾。