在导航栏上方显示一行

时间:2018-11-03 07:07:47

标签: android navigationbar

我想在导航栏上方显示一行,就像这样:

Desired result 我知道我可以编辑布局xml来做到这一点,但这会修改​​很多文件。有没有更简单的方法?

2 个答案:

答案 0 :(得分:0)

修改布局文件确实是一种更简单的方法。据我所知,仅实现一行代码并没有属性。

您可以创建一个layer list资源,并将其设置为导航视图的背景。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/colorPrimaryDark" />
        </shape>
    </item>
    <item android:top="1dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/colorWhite" />
        </shape>
    </item>
</layer-list>

答案 1 :(得分:0)

我认为最简单的方法是在布局xml文件中添加一行并将其约束到布局的底部。

  

具有线的普通约束布局,线可以是任何类型的视图(TextView,Button等)

<android.support.constraint.ConstraintLayout   xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<RelativeLayout
    android:id="@+id/bottom_line"
    android:layout_width="match_parent"
    android:layout_height="3dp"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    android:background="@color/colorAccent"
    app:layout_constraintVertical_bias="1"
    />

  

带有线条的正常相对布局

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<RelativeLayout
    android:id="@+id/bottom_line"
    android:layout_width="match_parent"
    android:layout_height="3dp"
    android:layout_alignParentBottom="true"
    android:background="@color/colorAccent"
    app:layout_constraintVertical_bias="1" />