【问题标题】:Layout inside Toolbar is shifted to the right工具栏内的布局向右移动
【发布时间】:2017-04-10 17:43:49
【问题描述】:

如您所见,放在Toolbar 中的LinearLayout 向右移动...

因此,Toolbar 不能很好地与 TabHost 叠加(这再次通过父 Fragment 中的 Toolbar 实现)。

  • 我该如何解决?

布局草图(Android Studio)

实际应用


布局代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical"
          tools:context="com.android.example">


<android.support.v7.widget.RecyclerView
    android:id="@+id/recview_navigator"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="2dp"
    android:layout_weight="1"/>

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:backgroundTint="@color/accent">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_navigator"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/imageView_navigator_up"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_weight="1"
                android:src="@drawable/ic_navigate_before_white_48dp"
                android:tint="@color/recview"/>

            <ImageView
                android:id="@+id/imageView_navigator_save"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_weight="1"
                android:src="@drawable/ic_save_white_48dp"
                android:tint="@color/recview"/>
        </LinearLayout>
    </android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
</LinearLayout>

【问题讨论】:

  • 如果您不打算使用 AppBarLayoutToolbar 从布局中删除它们。

标签: android android-layout material-design android-toolbar


【解决方案1】:

您是否尝试过删除内容插入?

<android.support.v7.widget.Toolbar`    
    app:contentInsetStart="0dp"
    app:contentInsetLeft="0dp"
...>

【讨论】:

    【解决方案2】:

    问题

    额外的边距空间是因为toolbar 标签。默认情况下,它有大约16dp 的空间。它是必需的,以便可以显示 hamburger、app_icon 或 up-caret 等图标。

    如何解决?

    好吧,技巧是在toolbar 标签中包含android:layout_marginLeft="-16dp" 属性,但是如果在调用子活动时显示up-caret(back-button) 或汉堡图标以防万一,这可能会弄乱布局导航抽屉。

    我之前写过这个here

    如果您不打算使用toolbar 的功能,那么最好将整个appBarLayout 替换为以下布局。

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorAccent"
        android:orientation="horizontal">
    
        <ImageView
            android:id="@+id/imageView_navigator_up"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:adjustViewBounds="false"
            android:src="@drawable/ic_navigate_before_white_48dp"/>
    
        <ImageView
            android:id="@+id/imageView_navigator_save"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:src="@drawable/ic_save_black_48dp"/>
    </LinearLayout>
    

    【讨论】:

      猜你喜欢
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多