我的约束布局的版本是1.0.0-alpha8
。在我的布局中包含工具栏后,工具栏的左侧和右侧都有空间,如下图所示
这是我的工具栏的代码
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
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="?attr/actionBarSize"
android:background="@color/colorPrimary">
</android.support.v7.widget.Toolbar>
我已按照以下方式包含在我的布局中
<include
layout="@layout/toolbar_top"
android:id="@+id/topPanel"
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
我没有在布局文件的根元素中使用任何额外的填充或边距。
另一个重要的事情是,如果我编译或构建程序,我的代码会自动更改,例如
<include
layout="@layout/toolbar_top"
android:id="@+id/topPanel"
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
更改为
<include
layout="@layout/toolbar_top"
android:id="@+id/topPanel"
android:layout_height="wrap_content"
android:layout_width="368dp"/>
指南还添加了一些我没写过的附加值,比如layout_editor_absoluteX
自动添加。
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline1"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.15"
tools:layout_editor_absoluteX="58dp"/>
答案 0 :(得分:14)
首先,您应该更新到ConstraintLayout beta 4。
现在,您遇到的根本问题是您在工具栏上使用match_parent
- ConstraintLayout不支持此功能。你需要添加:
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
并使用0dp
代替match_parent:
<include
layout="@layout/toolbar_top"
android:id="@+id/topPanel"
android:layout_height="wrap_content"
android:layout_width="0dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"/>
来轻松创建这些属性
在Android Studio 2.2上,您需要按住键来创建约束,在Android Studio 2.3上它会默认创建约束。