如何设置工具栏内要匹配父项的约束布局宽度?

时间:2019-05-08 09:03:24

标签: android xml android-layout

enter image description here

我有一个toolbar,在其中toolbar内放置了constraintlayout。我想将constraintlayout的宽度设置为match_parent。但是如上图所示,即使我将layout_width设置为match_parent,但在开始时(左侧)却与父项不匹配。您可以在绿色工具箱中看到蓝色轮廓框,左侧与父级不匹配。

因为我想在toolbar中放置一些视图,例如searchbar,文本等,并且如果constraintlayout的宽度不是{{1},则很难将其正确居中}。

这是我使用的xml:

match_parent

2 个答案:

答案 0 :(得分:2)

您需要将ContentInset属性添加到toolbar中,如下所示:

<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Activities.MainActivity">


<androidx.appcompat.widget.Toolbar
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:theme="?attr/actionBarTheme"
        android:minHeight="?attr/actionBarSize"
        android:id="@+id/top_toolbar"
        android:contentInsetLeft="0dp"
        android:contentInsetStart="0dp"
        android:contentInsetRight="0dp"
        android:contentInsetEnd="0dp"
        app:contentInsetLeft="0dp"
        app:contentInsetStart="0dp"
        app:contentInsetRight="0dp"
        app:contentInsetEnd="0dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        android:elevation="4dp">

    <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            tools:context=".Fragments.Search.SearchFragment"
            android:id="@+id/constraintLayout_toolbar" tools:layout_editor_absoluteY="8dp"
            tools:layout_editor_absoluteX="16dp">

        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:id="@+id/destination_label_text_view"
                tools:text="Text View"
                app:layout_constraintStart_toStartOf="parent"
                android:layout_marginBottom="8dp" app:layout_constraintBottom_toBottomOf="parent"
                android:layout_marginTop="8dp" app:layout_constraintTop_toTopOf="parent"
                android:textAlignment="viewStart" android:layout_marginEnd="8dp"
                app:layout_constraintEnd_toEndOf="parent"/>



    </androidx.constraintlayout.widget.ConstraintLayout>


</androidx.appcompat.widget.Toolbar>

答案 1 :(得分:1)

这不是ConstraintLayout

的问题

toolbar具有默认的左右边距

您可以通过以下代码将其删除

android:contentInsetLeft="0dp"
android:contentInsetStart="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
android:contentInsetRight="0dp"
android:contentInsetEnd="0dp"
app:contentInsetRight="0dp"
app:contentInsetEnd="0dp"