我尽量让水木清华这样的:为什么不显示徽章?
为了获得这个结果,我用这个代码:
我有我的NavigationView
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main_second"
app:menu="@menu/activity_third_drawer" />
我有菜单XML
文件:
<?xml version="1.0" encoding="utf-8"?>
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_inbox"
android:icon="@drawable/ic_mail_outline_white"
android:title="Inbox"
app:actionLayout="@layout/badge" />
</group>
<item android:title="@string/about_app">
<menu>
<item
android:id="@+id/nav_about"
android:icon="@drawable/ic_close_24dp"
android:title="@string/about1" />
</menu>
</item>
</menu>
我有我的badge XML
文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textMenuItemCount"
android:layout_width="wrap_content"
android:text="rrrr"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:textColor="@android:color/holo_blue_light"
android:textStyle="bold"
android:textSize="16sp"
android:alpha="0.6"/>
</RelativeLayout>
然后我尝试设置2
到badge
在我MainActivity
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainsecond);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
MenuItem item = navigationView.getMenu().findItem(R.id.nav_inbox);
MenuItemCompat.setActionView(item, R.layout.badge);
RelativeLayout notifCount = (RelativeLayout) MenuItemCompat.getActionView(item);
TextView tv = (TextView) notifCount.findViewById(R.id.textMenuItemCount);
tv.setText("2");
}
,最终我什么也没得到。
我试图调试,它告诉我一切正常。
请帮助我。我究竟做错了什么?
请确认能见度。 –
@SohailZahid我怎么能做到这一点? –
的setText( “asdasd”)后';'还设置'setVisibility(0);' –