Android |在导航栏上添加行

时间:2019-02-06 20:21:34

标签: android xml

在我的v27 \ style.xml中,我具有以下代码来设置白色导航栏:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:navigationBarColor">@android:color/white</item>
    <item name="android:windowLightNavigationBar">true</item>
</style>

它有效,但是白色导航栏与白色背景“连接”。我将在每个活动的导航栏上添加一条水平线。我该怎么办?

这就是我要的(来自Youtube),我用红色矩形突出显示了它: YouTube App

3 个答案:

答案 0 :(得分:0)

我认为在这种情况下,您可能需要自定义工具栏布局,以便您可以随心所欲地优化布局。

类似这样的东西:

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

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

<TextView
    android:id="@+id/tvToolBarTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:textSize="18sp"
    android:text="Toobar"
    android:fontFamily="@font/filson_pro_book"
    android:textColor="@color/white"
    android:visibility="visible"/>

<FrameLayout
    android:layout_gravity="center_horizontal"
    android:background="@color/white"
    android:layout_width="100dp"
    android:layout_height="1dp"/>

</LinearLayout>

enter image description here

答案 1 :(得分:0)

您每次打开导航抽屉时可能要添加一条水平线:

    <View
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:background="#FF0000FF"
    android:layout_gravity = "bottom/>

如果您希望该行位于屏幕的一半(仅在导航栏上),请将其添加到导航栏内。

如果您要使该行显示在整个屏幕上(如您在图片中标记的那样)-在添加导航后将其添加。

答案 2 :(得分:0)

自API 27以来,存在一种称为navigationBarDividerColor的样式属性,该属性可以执行此操作。您可以使用navigationBarColor对其进行补充,使其看起来像屏幕快照中的那个。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light">
        ...
        <item name="android:navigationBarColor">@android:color/white</item>
        <item name="android:navigationBarDividerColor">#DBDBDB</item>
    </style>
</resources>

enter image description here