I have bellow menu :
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_Search"
android:icon="#drawable/search"
android:title="#string/Search" />
<item
android:id="#+id/nav_Bookmark"
android:icon="#drawable/sign"
android:title="#string/Bookmark" />
</group>
<item android:title="">
<menu>
<item
android:id="#+id/About_Software"
android:icon="#android:drawable/ic_input_add"
android:title="#string/About_Software" />
<item
android:id="#+id/nav_About"
android:icon="#drawable/about_us"
android:title="#string/About" />
<item
android:id="#+id/nav_help"
android:icon="#drawable/help"
android:title="#string/Help" />
<item
android:id="#+id/nav_Setting"
android:icon="#drawable/settings"
android:title="#string/Setting" />
<item
android:id="#+id/nav_Exit"
android:icon="#drawable/exit"
android:title="#string/Exit" />
</menu>
</item>
</menu>
And I use from this menu in :
<android.support.design.widget.NavigationView
android:id="#+id/navigation"
android:layout_width="#dimen/Drawer_Width"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#drawable/background_color"
app:headerLayout="#layout/header_drawer"
app:menu="#menu/menu_start_lowversion" />
Can I have animation on icon's menu or ripple on each items?
Try to add
app:itemBackground="?attr/selectableItemBackground"
to your navigation view xml for the ripple effect.
I'm not sure what you mean by icon animation though. You can provide your own background selector if you want too.
Related
I'm not finding how to create a icon over text centered in the menu of a DrawerLayout. Using standard Drawer layout file with menu items. Tried adding android:gravity but that does not seem to help. Thoughts?
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group android:checkableBehavior="single">
<item
android:layout_gravity="center_horizontal"
android:id="#+id/nav_backpack"
android:icon="#drawable/person"
android:title="Backpack" />
<item
android:id="#+id/nav_messages"
android:icon="#drawable/messages"
android:title="Messages" />
<item
android:id="#+id/nav_library"
android:icon="#drawable/book"
android:title="Library" />
<item
android:id="#+id/nav_calendar"
android:icon="#drawable/calendar"
android:title="Calendar" />
<item
android:id="#+id/nav_progress"
android:icon="#drawable/book"
android:title="Progress" />
<item
android:id="#+id/nav_account"
android:title="Account" />
<item
android:id="#+id/nav_help"
android:title="Help" />
<item
android:id="#+id/nav_logout"
android:title="Logout" />
</group>
<group android:checkableBehavior="none">
<item android:title="About">
<menu>
<item
android:id="#+id/nav_version"
android:icon="#drawable/ic_menu_share"
android:title="v1.1(03)" />
</menu>
</item>
</group>
</menu>
I have a problem I want to move the text next to the picture this is a picture of the problem
https://imgur.com/a/E2mKn
I want to get this
https://imgur.com/a/7wgkn
My menu
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layoutDirection="ltr">
<group>
<item
android:id="#+id/menu_login"
android:title="Login"
android:icon="#drawable/icon_login"
/>
<item
android:id="#+id/menu_myfile"
android:title=""
android:icon="#drawable/icon_login"
android:visible="false"
/>
<item
android:id="#+id/menu_favorites"
android:title="Favorites"
android:icon="#drawable/icon_favorites"/>
<item
android:id="#+id/menu_rate"
android:title="Rate us"
android:icon="#drawable/icon_rate"/>
<item
android:id="#+id/menu_logout"
android:title="Logout"
android:icon="#drawable/icon_logout"
android:visible="false"
/>
</group>
<group
android:id="#+id/group_two">
<item android:title="Subscribe to us">
<menu>
<item
android:id="#+id/menu_facebook"
android:title="Facebook"
android:icon="#drawable/icon_facebook"/>
<item
android:id="#+id/menu_telegram"
android:title="Telegram"
android:icon="#drawable/icon_telegram"/>
<item
android:id="#+id/menu_instagram"
android:title="Instagram"
android:icon="#drawable/icon_instagram"/>
<item
android:id="#+id/menu_twitter"
android:title="Twitter"
android:icon="#drawable/icon_twitter"/>
</menu>
</item>
</group>
</menu>
I try to use this but it's not working
android:layoutDirection="ltr"
The problem is only on some old devices, I wish to get help thanks a lot.
You have to try like this
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="#+id/cc_drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
.
.
.
.
.
<android.support.design.widget.NavigationView
android:id="#+id/cc_nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="#layout/am_nav_header_main_new"
app:menu="#menu/am_main_navigation_items" />
</android.support.v4.widget.DrawerLayout>
am_main_navigation_items.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="#+id/cc_nav_home"
android:icon="#drawable/ic_dashboard_primary"
android:title="#string/nav_dashboard" />
<item
android:id="#+id/am_nav_auditList"
android:icon="#drawable/ic_audits_primary"
android:title="#string/nav_auditList" />
<item
android:id="#+id/nav_about"
android:icon="#drawable/ic_about_primary"
android:title="#string/cc_nav_about" />
<item
android:id="#+id/nav_app_info"
android:icon="#drawable/ic_info_outline_primary"
android:title="#string/cc_nav_app_info" />
</group>
<group
android:id="#+id/group_two">
<item android:title="Subscribe to us">
<menu>
<item
android:id="#+id/menu_facebook"
android:title="Facebook"
android:icon="#drawable/icon_facebook"/>
<item
android:id="#+id/menu_telegram"
android:title="Telegram"
android:icon="#drawable/icon_telegram"/>
<item
android:id="#+id/menu_instagram"
android:title="Instagram"
android:icon="#drawable/icon_instagram"/>
<item
android:id="#+id/menu_twitter"
android:title="Twitter"
android:icon="#drawable/icon_twitter"/>
</menu>
</item>
</group>
</menu>
This will help, layoutDirection was introduced in API 17, all devices below should call this line:
ViewCompat.setLayoutDirection( findViewById(R.id.my_view) , ViewCompat.LAYOUT_DIRECTION_LTR );
oh and make sure that for the above you will use android.support.v4.view.ViewCompat import
or you can just add this piece to the menu items:
android:layout_gravity="end"
Try placing the entire menu inside a FrameLayout. Then set the layout_width of the frame layout to wrap_content.
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<menu>
<group>
<item
android:id="#+id/menu_login"
android:icon="#drawable/icon_login"
android:title="Login" />
<item
android:id="#+id/menu_myfile"
android:icon="#drawable/icon_login"
android:title=""
android:visible="false" />
<item
android:id="#+id/menu_favorites"
android:icon="#drawable/icon_favorites"
android:title="Favorites" />
<item
android:id="#+id/menu_rate"
android:icon="#drawable/icon_rate"
android:title="Rate us" />
<item
android:id="#+id/menu_logout"
android:icon="#drawable/icon_logout"
android:title="Logout"
android:visible="false" />
</group>
<group android:id="#+id/group_two">
<item android:title="Subscribe to us">
<menu>
<item
android:id="#+id/menu_facebook"
android:icon="#drawable/icon_facebook"
android:title="Facebook" />
<item
android:id="#+id/menu_telegram"
android:icon="#drawable/icon_telegram"
android:title="Telegram" />
<item
android:id="#+id/menu_instagram"
android:icon="#drawable/icon_instagram"
android:title="Instagram" />
<item
android:id="#+id/menu_twitter"
android:icon="#drawable/icon_twitter"
android:title="Twitter" />
</menu>
</item>
</group>
</menu>
</FrameLayout>
activity_main_drawer.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:myapp="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<group>
<item
android:id="#+id/portal"
android:icon="#drawable/memu_icon_home_off"
android:title="#string/menu_home"
/>
</group> <!-- show -->
<item android:title="#string/menu_category"
android:icon="#drawable/memu_icon_category_on"
myapp:showAsAction="always"> <!-- not showing! -->
<menu>
<item
android:id="#+id/ct001"
android:title="#string/title_ct001" />
<item
android:id="#+id/ct002"
android:title="#string/title_ct002" />
<item
android:id="#+id/ct003"
android:title="#string/title_ct003" />
<item
android:id="#+id/ct004"
android:title="#string/title_ct004" />
<item
android:id="#+id/ct005"
android:title="#string/title_ct005" />
<item
android:id="#+id/ct006"
android:title="#string/title_ct006" />
<item
android:id="#+id/ct007"
android:title="#string/title_ct007" />
</menu>
</item>
<group>
<item
android:id="#+id/appinfo"
android:icon="#drawable/memu_icon_set_off"
android:title="#string/appinfo"
/>
</group> <!-- show -->
</menu>
I want to print left listlayout like it
(icon1) home
(icon2) category
category value.....
category value.....
category value.....
category value.....
category value.....
(icon3) app inf
'menu_icon_category_on'(icon2)
this item's icon not showing (groups icon can see)
How can I show it?
try this once
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<item
android:id="#+id/a"
android:icon="#drawable/a"
android:title="#string/a"
app:showAsAction="always"/>
<item
android:id="#+id/b"
android:icon="#drawable/b"
android:title="#string/b"
app:showAsAction="always"/>
<item
android:id="#+id/c"
android:title="#string/c"
android:icon="#drawable/c"
app:showAsAction="always"/>
<!-- More -->
<item
android:id="#+id/more"
android:icon="#drawable/ic_menu_overflow"
app:showAsAction="always"
android:title="More">
<menu>
<item android:id="#+id/d"
android:icon="#drawable/s"
android:title="#string/d"
app:showAsAction="never" />
<item android:id="#+id/e"
android:title="#string/e"
app:showAsAction="never" />
<item android:id="#+id/f"
android:icon="#drawable/f"
android:title="#string/f"
app:showAsAction="never" />
</menu>
</item>
</menu>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res-auto">
<group>
<item
android:id="#+id/portal"
android:icon="#drawable/home"
android:title="Home" />
</group>
<group android:id="#+id/grpidCategory">
<item
android:icon="#drawable/ic_menu_gallery"
android:title="menu_category"
myapp:showAsAction="always" />
</group>
<group android:id="#+id/grpidCatItems">
<item
android:id="#+id/ct001"
android:title="title_ct001" />
<item
android:id="#+id/ct002"
android:title="title_ct002" />
<item
android:id="#+id/ct003"
android:title="title_ct003" />
<item
android:id="#+id/ct004"
android:title="title_ct004" />
<item
android:id="#+id/ct005"
android:title="title_ct005" />
<item
android:id="#+id/ct006"
android:title="title_ct006" />
<item
android:id="#+id/ct007"
android:title="title_ct007" />
</group>
<group android:id="#+id/grpid2">
<item
android:id="#+id/appinfo"
android:icon="#drawable/feedback"
android:title="appinfo" />
</group>
</menu>
You can add images in the subitems of Category if you want.
Im trying to add a switch (checkbox as second option) to the navigation drawer. The "slide in menu". The default one you'll get when creating a new project with navigation drawer.
I've tried on a fresh new project so I dont mess up my 'real' project.
I tried this from SO
But without any luck. Cant seem to find anything else worth mentioning..
Im trying to add the switch at the last menuItem. activity_main_drawer.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_camera"
android:icon="#drawable/ic_menu_camera"
android:title="Import"
android:checkable="true"/>
<item
android:id="#+id/nav_gallery"
android:icon="#drawable/ic_menu_gallery"
android:title="Gallery" />
<item
android:id="#+id/nav_slideshow"
android:icon="#drawable/ic_menu_slideshow"
android:title="Slideshow" />
<item
android:id="#+id/nav_manage"
android:icon="#drawable/ic_menu_manage"
android:title="Tools" />
</group>
<item android:title="Communicate">
<menu>
<item
android:id="#+id/nav_share"
android:icon="#drawable/ic_menu_share"
android:title="Share" />
<item
android:id="#+id/nav_send"
android:icon="#drawable/ic_menu_send"
android:title="Send" />
<item
android:id="#+id/myswitch"
android:title=""
android:actionLayout="#layout/ttt"
/>
</menu>
</item>
</menu>
ttt.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<Switch
android:id="#+id/ss"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
</RelativeLayout>
The last item "id/myswitch" doens't show at all.
The MainActivity.java is 100% default. Thats why I dont post it.
Instead of:
<item
android:id="#+id/myswitch"
android:title=""
android:actionLayout="#layout/ttt"
/>
write:
<item
android:id="#+id/myswitch"
android:title=""
app:actionLayout="#layout/ttt"
/>
Change android:actionLayout to app:actionLayout.
I'm unable to change the colour of my sub menu header, please see the image below.
I can change the background of the NavigationView, the colour of the fonts and the colour of the icons but I can't find an answer on the sub menu header.
e.g.
<android.support.design.widget.NavigationView
android:id="#+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#color/white"
app:itemBackground="#color/white"
app:itemIconTint="#color/dark_green"
app:itemTextColor="#color/dark_green"
app:headerLayout="#layout/drawer_header"
app:menu="#menu/drawer" />
Here is my menu xml:
<group android:checkableBehavior="single">
<item
android:checked="true"
android:icon="#drawable/ic_attachment"
android:title="#string/nav_item_attachment" />
<item
android:icon="#drawable/ic_image"
android:title="#string/nav_item_images" />
<item
android:icon="#drawable/ic_place"
android:title="#string/nav_item_location" />
</group>
<item android:title="#string/nav_sub_menu">
<menu>
<item
android:icon="#drawable/ic_emoticon"
android:title="#string/nav_sub_menu_item01" />
<item
android:icon="#drawable/ic_emoticon"
android:title="#string/nav_sub_menu_item02" />
</menu>
</item>
Please advise. :-).
NavigationView Sub Menu problem
Try this code to do something like the image below
<menu>
<group android:checkableBehavior="single">
<item
android:checked="true"
android:icon="#drawable/ic_attachment"
android:title="#string/nav_item_attachment" />
<item
android:icon="#drawable/ic_image"
android:title="#string/nav_item_images" />
<item
android:icon="#drawable/ic_place"
android:title="#string/nav_item_location" />
</group>
<group android:checkableBehavior="single">
<item android:title="#string/nav_sub_menu">
<menu>
<item
android:icon="#drawable/ic_emoticon"
android:title="#string/nav_sub_menu_item01" />
<item
android:icon="#drawable/ic_emoticon"
android:title="#string/nav_sub_menu_item02" />
</menu>
</item>
</group>
</menu>
The difference with your code is that the code is inside a <group>...</group>
#Jorge
Like this?
<group android:checkableBehavior="single">
<item
android:checked="true"
android:icon="#drawable/ic_attachment"
android:title="#string/nav_item_attachment" />
<item
android:icon="#drawable/ic_image"
android:title="#string/nav_item_images" />
<item
android:icon="#drawable/ic_place"
android:title="#string/nav_item_location" />
</group>
<group android:checkableBehavior="single">
<item android:title="#string/nav_sub_menu">
<menu>
<item
android:icon="#drawable/ic_emoticon"
android:title="#string/nav_sub_menu_item01" />
<item
android:icon="#drawable/ic_emoticon"
android:title="#string/nav_sub_menu_item02" />
</menu>
</item>
</group>
It doesn't seem to make a difference