I try to make smth like this:
To obtain this result I use this code:
I have my 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" />
I have menu XML
file:
<?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>
And I have my badge XML
file:
<?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>
Then I try to set 2
to badge
in my 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");
}
And eventually I get nothing.
I have tried to debug and it show me all is ok.
Please help me. What am I doing wrong?