Android:在工具栏布局中绘制线条/边框?

McO*_*OzD 7 android android-layout

我要求appBar看起来像这样:

在此输入图像描述

背景简直是透明的.

我使用这个布局来获取appBar(隐藏细节):

<android.support.v7.widget.Toolbar>
  <TextView>
  <ImageView>
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

简单地增加一个视图height=1dp下方ImageViewlayout_gravity="bottom将无法正常工作.

甚至可以画出一条线或一条边界ToolbarLayout

Nor*_*tan 5

像这样使用RelativeLayout:

<android.support.v7.widget.Toolbar>
    <RelativeLayout>
         <TextView>
         <ImageView>
         <View  android:layout_width="match_parent" 
                android:layout_height="1dp"
                android:layout_below="@+id/button_menu"/>
    </RelativeLayout>
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

  • 可悲的是,这并没有画出全线。工具栏会在左侧留下一些边距或填充。如果您设置“ HomeAsUpIndicator”(例如图像),则此裕度会更大,因为此图像周围有更多的裕度/填充。 (4认同)
  • @McOzD您可以尝试以下方法:app:contentInsetStart =“ 0dp” (2认同)

dkn*_*ler 5

将工具栏包装在AppBarLayout(扩展了LinearLayout)中,并将该行添加为此处的视图:

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    ...>

    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        .../>

    <View android:layout_width="match_parent"
          android:layout_height="1dp"
          android:background="..."
          />

</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)

使用AppBarLayout时,Android 21及更高版本将具有默认的“关键行”,而我必须使用以下代码将其关闭:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    findViewById (R.id.app_bar).setOutlineProvider (null);
}
Run Code Online (Sandbox Code Playgroud)