我要求appBar看起来像这样:
背景简直是透明的。
我使用此布局获取appBar(隐藏详细信息):
<android.support.v7.widget.Toolbar>
<TextView>
<ImageView>
</android.support.v7.widget.Toolbar>
只需在[{1}}下方height=1dp
添加ImageView
,layout_gravity="bottom
即可。
甚至可以在ToolbarLayout
?
答案 0 :(得分: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>
答案 1 :(得分:4)
将工具栏包装在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>
使用AppBarLayout,在Android 21及更高版本上会有一个默认的“关键线”,我不得不在代码中将其关闭:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
findViewById (R.id.app_bar).setOutlineProvider (null);
}
答案 2 :(得分:0)
还有另一种解决方案,通过绘制到画布上
class CustomToolbar(context: Context?, attrs: AttributeSet?) : Toolbar(context, attrs) {
private val lineColor: Int = Color.rgb(0, 0, 0)
init {
invalidate()
}
override fun dispatchDraw(canvas: Canvas?) {
val paint = Paint()
paint.color = lineColor
paint.strokeWidth = 15f
canvas?.drawLine(0f, height.toFloat(), width.toFloat(), height.toFloat(), paint)
super.dispatchDraw(canvas)
}
}