是否可以在android中为底部导航栏设置顶部边框,如果可能的话告诉我如何做到这一点,我正在使用android的新底部导航视图。 这是我的代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentTop="true">
<include
android:id="@+id/gamebar"
layout="@layout/gamebar_layout"
/>
<include
android:id="@+id/toolbar"
layout="@layout/toolbar_layout" />
</LinearLayout>
<!-- Let's add fragment -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/app_bar_layout"
android:layout_above="@+id/bottom_navigation"
android:id="@+id/contentContainer"/>
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_alignParentBottom="true"
app:itemBackground="@color/BottomNavigationBgColor"
app:itemIconTint="@color/CelestialBlue"
app:itemTextColor="@color/CelestialBlue"
app:menu="@menu/bottom_navigation_main" />
</RelativeLayout>
答案 0 :(得分:6)
您可以尝试这样做:在View
BottomNavigationView
元素
<View
android:layout_width="match_parent"
android:layout_height="4dp"
android:layout_above="@+id/bottom_navigation"
android:background="#000000"></View>
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_alignParentBottom="true"
app:itemBackground="@color/BottomNavigationBgColor"
app:itemIconTint="@color/CelestialBlue"
app:itemTextColor="@color/CelestialBlue"
app:menu="@menu/bottom_navigation_main" />
答案 1 :(得分:5)
使用XML定义背景drawable:
<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>
将其用作
的背景android:background="@drawable/myBackgroundBottomDrawer"
答案 2 :(得分:0)
您可以为顶部边框创建一个LinearLayout
的新View
,并将android.support.design.widget.BottomNavigationView
置于顶部View
下方,以添加顶部边框。
这是工作代码。只需更新您的XML,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentTop="true">
<include
android:id="@+id/gamebar"
layout="@layout/gamebar_layout"/>
<include
android:id="@+id/toolbar"
layout="@layout/toolbar_layout" />
</LinearLayout>
<!-- Bottom Navigation Layout-->
<LinearLayout
android:id="@+id/layout_bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentBottom="true">
<!-- Top Border -->
<View
android:layout_width="match_parent"
android:layout_height="6dp"
android:background="#FF0000">
</View>
<!-- BottomNavigationView -->
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="56dp"
app:itemBackground="@color/BottomNavigationBgColor"
app:itemIconTint="@color/CelestialBlue"
app:itemTextColor="@color/CelestialBlue"
app:menu="@menu/bottom_navigation_main" />
</LinearLayout>
<!-- Let's add fragment -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/app_bar_layout"
android:layout_above="@id/layout_bottom_navigation"
android:id="@+id/contentContainer"/>
</RelativeLayout>
更新:如果您不使用View
,则可以将属性android:layout_marginTop
添加到android.support.design.widget.BottomNavigationView
并将背景颜色设置为android:background="#FF0000"
LinearLayout
。
<!-- Bottom Navigation Layout-->
<LinearLayout
android:id="@+id/layout_bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:background="#FF0000">
<!-- BottomNavigationView -->
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_marginTop="6dp"
app:itemBackground="@color/BottomNavigationBgColor"
app:itemIconTint="@color/CelestialBlue"
app:itemTextColor="@color/CelestialBlue"
app:menu="@menu/bottom_navigation_main" />
</LinearLayout>
希望这会对你有帮助〜