设置match_parent后仍留有空白空间

时间:2018-12-14 07:50:22

标签: android android-layout android-actionbar

我创建了一个带有导航抽屉和菜单的工具栏,现在我试图在同一工具栏上添加textView和edittext并将它们放置在中心,但是问题是当我添加相对布局并将宽度设置为匹配时父级,它在左侧租用了一些空间,要放置在中间的项目向右移动。

我粘贴了以下代码:-

<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="130dp"
android:theme="@style/AppTheme.AppBarOverlay">


<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="?attr/colorPrimary">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="H E A D"
            android:textSize="30dp"
            android:layout_centerHorizontal="true"
            android:textStyle="bold"
            android:id="@+id/ToolbarTextView"
            style="@style/Base.TextAppearance.AppCompat.Large"
            android:layout_marginTop="9dp"
            android:textColor="@color/colorwhite"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/ToolbarTextView"
            android:layout_centerHorizontal="true"
            android:text="Tagline"
            android:textSize="15dp"
            android:textColor="@color/colorwhite"/>

        <EditText
            android:layout_width="292dp"
            android:layout_height="wrap_content"
            android:background="@drawable/main_search"
            android:padding="7dp"
            android:backgroundTint="@color/colorwhite"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="10dp"
            android:hint="Search..."
            android:id="@+id/ToolbarSearch1"/>

    </RelativeLayout>

</android.support.v7.widget.Toolbar></android.support.design.widget.AppBarLayout><include layout="@layout/content_main" /><android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@android:drawable/ic_dialog_email" />

mainActivity的xml代码:-

<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"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.strease.user.strease.MainActivity"
android:id="@+id/layout4"
tools:showIn="@layout/app_bar_main">


<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:paddingTop="5dp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/></android.support.constraint.ConstraintLayout>

参考图像如下:-

Reference image

设备的屏幕截图如下:-

screenshot

P.S:-我需要省略空白区域,并将editText和textViews放置在布局的中心(当前,它们已向右移动)

主要活动中的导航抽屉代码:-

  <android.support.v4.widget.DrawerLayout
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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start"><include
    layout="@layout/app_bar_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer"/></android.support.v4.widget.DrawerLayout>

3 个答案:

答案 0 :(得分:0)

您需要将此 properties 添加到工具栏中以删除该空间。

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

如下。

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:contentInsetEnd="0dp"
    android:contentInsetLeft="0dp"
    android:contentInsetRight="0dp"
    android:contentInsetStart="0dp"
    app:contentInsetEnd="0dp"
    app:contentInsetLeft="0dp"
    app:contentInsetRight="0dp"
    app:contentInsetStart="0dp"
    android:background="?attr/colorPrimary">

这将从工具栏中删除默认的左空格。

这里是屏幕截图。似乎编辑文本显示在工具栏的确切中心中。还要将您的 minSdkVersion 更新为 21 肯定可以。

这是布局代码。

<android.support.design.widget.AppBarLayout 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="130dp"
    android:background="@android:color/holo_red_light"
    android:theme="@style/AppTheme.AppBarOverlay">


    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?attr/colorAccent"
        android:contentInsetEnd="0dp"
        android:contentInsetLeft="0dp"
        android:contentInsetRight="0dp"
        android:contentInsetStart="0dp"
        app:contentInsetEnd="0dp"
        app:contentInsetLeft="0dp"
        app:contentInsetRight="0dp"
        app:contentInsetStart="0dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/ToolbarTextView"
                style="@style/Base.TextAppearance.AppCompat.Large"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="9dp"
                android:text="H E A D"
                android:textColor="@android:color/white"
                android:textSize="30dp"
                android:textStyle="bold" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/ToolbarTextView"
                android:layout_centerHorizontal="true"
                android:text="Tagline"
                android:textColor="@android:color/white"
                android:textSize="15dp" />

            <EditText
                android:id="@+id/ToolbarSearch1"
                android:layout_width="292dp"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="10dp"
                android:background="@android:color/white"
                android:backgroundTint="@android:color/white"
                android:hint="Search..."
                android:padding="7dp" />

        </RelativeLayout>

    </android.support.v7.widget.Toolbar>


    <include layout="@layout/content_main" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        app:srcCompat="@android:drawable/ic_dialog_email" />
</android.support.design.widget.AppBarLayout>

编辑

导航图标工具栏添加另一个属性。

app:contentInsetStartWithNavigation="0dp"

现在您的工具栏应该如下所示。

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?attr/colorAccent"
        android:contentInsetEnd="0dp"
        android:contentInsetLeft="0dp"
        android:contentInsetRight="0dp"
        android:contentInsetStart="0dp"
        app:contentInsetEnd="0dp"
        app:contentInsetLeft="0dp"
        app:contentInsetRight="0dp"
        app:contentInsetStartWithNavigation="0dp"
        app:contentInsetStart="0dp">

编辑2

我对使用线性布局而不是相对布局布局进行了一些更改。

<android.support.design.widget.AppBarLayout 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="130dp"
    android:background="@android:color/holo_red_light"
    android:theme="@style/AppTheme.AppBarOverlay">


    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?attr/colorAccent"
        android:contentInsetEnd="0dp"
        android:contentInsetLeft="0dp"
        android:contentInsetRight="0dp"
        android:contentInsetStart="0dp"
        app:contentInsetEnd="0dp"
        app:contentInsetLeft="0dp"
        app:contentInsetRight="0dp"
        app:contentInsetStartWithNavigation="0dp"
        app:contentInsetStart="0dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:gravity="center"
            android:orientation="vertical">

            <TextView
                android:id="@+id/ToolbarTextView"
                style="@style/Base.TextAppearance.AppCompat.Large"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="2dp"
                android:text="H E A D"
                android:textColor="@android:color/white"
                android:textSize="30dp"
                android:textStyle="bold" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Tagline"
                android:layout_marginTop="2dp"
                android:textColor="@android:color/white"
                android:textSize="15dp" />

            <EditText
                android:id="@+id/ToolbarSearch1"
                android:layout_width="292dp"
                android:layout_height="wrap_content"
                android:background="@android:color/white"
                android:layout_marginTop="3dp"
                android:backgroundTint="@android:color/white"
                android:hint="Search..."
                android:padding="7dp" />

        </LinearLayout>

    </android.support.v7.widget.Toolbar>


    <include layout="@layout/content_main" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        app:srcCompat="@android:drawable/ic_dialog_email" />
</android.support.design.widget.AppBarLayout>

enter image description here

答案 1 :(得分:0)

android:fitsSystemWindows="false"

答案 2 :(得分:0)

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

尝试在工具栏中添加以上四行。它将解决您的问题。并使子布局在宽度match_parent和高度wrap_content内。并将您的子子视图对齐中心设置为水平。它将解决您的问题。

如果仍然不能解决问题,则使用包含的布局完全更新布局的XML文件,以便我们找出您的布局到底发生了什么问题。