【问题标题】:Unexplained gap/padding to the left, between Toolbar, and LinearLayout在 Toolbar 和 LinearLayout 之间的左侧无法解释的间隙/填充
【发布时间】:2015-06-09 10:05:27
【问题描述】:

我的 Android Studio 项目的布局文件中有以下结构,并且我看到父元素(工具栏)和它的直接子元素(线性布局)之间无法解释的左填充。

布局文字

<Toolbar
    android:layout_width="fill_parent"
    android:layout_height="600dp"
    android:id="@+id/toolbar"
    android:background="#313B45"
    android:weightSum="1">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" android:orientation="vertical">
        <ImageView
            android:id="@+id/headerimage"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:scaleType="fitXY"
            android:layout_gravity="left|top"
            android:layout_weight="1"/>

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="New Text"
            android:id="@+id/textView"
            android:scaleType="fitXY"
            android:layout_gravity="left|top"
            android:layout_weight="1"/>

    </LinearLayout>
</Toolbar>

如何消除这个间隙并让子 LinearLayout 与父 Toolbar 完全对齐?

【问题讨论】:

    标签: android android-layout layout imageview android-linearlayout


    【解决方案1】:

    将这些行添加到您的工具栏布局: 对于 API

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

    对于 API 21>= 工具栏:

        android:contentInsetLeft="0dp"
        android:contentInsetStart="0dp"
    

    左侧插入是由Toolbar的contentInsetStart引起的,默认为16dp。

    这是完整的代码:

    <android.support.v7.widget.Toolbar
    android:layout_width="fill_parent"
    android:layout_height="600dp"
    android:id="@+id/toolbar"
    android:background="#313B45"
    android:weightSum="1"
    app:contentInsetLeft="0dp"
    app:contentInsetStart="0dp"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <ImageView
            android:id="@+id/headerimage"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:scaleType="fitXY"
            android:layout_gravity="left|top"
            android:layout_weight="1" />
    
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="New Text"
            android:id="@+id/textView"
            android:scaleType="fitXY"
            android:layout_gravity="left|top"
            android:layout_weight="1" />
    
    </LinearLayout>
    

    【讨论】:

    • 尝试在你的 build.gradle 中包含这个:compile 'com.android.support:appcompat-v7:21.0.3'
    • 谢谢。当我使用 API 21 时,我添加了 app: 前缀。使用 android.support.v7.widget.Toolbar 总是会给我运行时错误,因为它会膨胀工具栏。感谢您的回答!
    • 你是救生员!
    • 如果 imageView (w,h: wrap_content) 在 Toolbar 内,是否可以将其与工具栏顶部对齐?我正在尝试一切,但无法做到。我的目标是在工具栏顶部“悬挂”书签功能区图像之类的东西,我敢打赌,总会有一些我无法消除的填充
    【解决方案2】:

    上面的答案只帮助解决了一部分,添加这些行应该可以正常工作

    android.support.v7.widget.Toolbar
            xmlns:app="schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/primaryColor"
            android:contentInsetLeft="0dp"
            android:contentInsetStart="0dp"
            app:contentInsetLeft="0dp"
            app:contentInsetStart="0dp"
            android:contentInsetRight="0dp"
            android:contentInsetEnd="0dp"
            app:contentInsetRight="0dp"
            app:contentInsetEnd="0dp" />
    

    请注意,android:contentInsetLeftapp:contentInsetLeft 是两个独立的东西,两者都需要

    【讨论】:

      猜你喜欢
      • 2016-12-30
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 2022-08-18
      • 2015-02-28
      相关资源
      最近更新 更多