我想在新的中添加一个自定义项目底部导航视图 https://developer.android.com/reference/android/support/design/widget/BottomNavigationView.html.
有很多关于使用普通导航视图添加自定义视图的教程,但我找不到有关底部视图的任何内容。
这是我的看法
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/menu_main" />
这是菜单
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_one"
android:icon="@drawable/ic_tab_one"
android:title="one" />
<item
android:id="@+id/menu_two"
app:actionLayout="@layout/item_action_notification"
android:title="two" />
正如你所看到的,我把动作布局像平常一样标记,但它根本不显示。
有任何想法吗?谢谢。
希望下面的解决方案能有所帮助。
-
创建布局:布局/_custom_cart_item_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/cart_badge"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="top|center_horizontal"
android:layout_marginLeft="10dp"
android:background="@drawable/circle"
android:backgroundTint="@color/colorAccent"
android:gravity="center"
android:text="0"
android:textColor="@android:color/white"
android:textSize="12sp" />
</FrameLayout>
-
可绘制/圆形
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/white"/>
<size android:width="40dp" android:height="40dp" />
</shape>
-
主要活动 :布局/main_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<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="com.MainActivity">
<android.support.design.widget.BottomNavigationView
android:id="@+id/bot_nav"
android:layout_width="0dp"
android:layout_height="56dp"
android:background="@color/white"
android:elevation="2dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/bottom_menu" />
</android.support.constraint.ConstraintLayout>
-
menu : 菜单/bottom_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_home"
android:icon="@drawable/home24"
android:title="Home" />
<item
android:id="@+id/menu_cart"
android:icon="@drawable/shoppingcart24"
android:title="Cart" />
<item
android:id="@+id/menu_acct"
android:icon="@drawable/user24"
android:title="Account" />
</menu>
-
在你的 MainActivity 类中onCreate
BottomNavigationView mbottomNavigationView =findViewById(R.id.bot_nav);
BottomNavigationMenuView mbottomNavigationMenuView =
(BottomNavigationMenuView) mbottomNavigationView.getChildAt(0);
View view = mbottomNavigationMenuView.getChildAt(1);
BottomNavigationItemView itemView = (BottomNavigationItemView) view;
View cart_badge = LayoutInflater.from(this)
.inflate(R.layout._custom_cart_item_layout,
mbottomNavigationMenuView, false);
itemView.addView(cart_badge);
输出:图像 https://i.stack.imgur.com/1XS1o.jpg
希望它对你也有类似的作用。
谢谢
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)