I have set a popup menu in my application.But i want my pop up in material design.How can i do this?
My pop up menu
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="#+id/item_movies"
android:showAsAction="ifRoom|withText"
android:title="Movies"
android:visible="true"/>
<item
android:id="#+id/item_music"
android:showAsAction="ifRoom|withText"
android:title="Music"
android:visible="true"/>
<item
android:id="#+id/item_comedy"
android:showAsAction="ifRoom|withText"
android:title="Comedy"
android:visible="true"/>
</menu>
It looks something like this
I want something like this
COde
public void showPopup(View v) {
PopupMenu popup = new PopupMenu(this.getApplicationContext(), v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.song_popup, popup.getMenu());
popup.show();
/*Toast.makeText(this, "pop up test",
Toast.LENGTH_LONG).show();*/
}
style.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">#color/myPrimaryColor</item>
<item name="colorPrimaryDark">#color/myPrimaryDarkColor</item>
<item name="colorAccent">#color/myAccentColor</item>
<item name="android:textColorPrimary">#color/myTextPrimaryColor</item>
<item name="android:navigationBarColor">#color/myNavigationColor</item>
<item name="drawerArrowStyle">#style/DrawerArrowStyle</item>
<item name="android:windowBackground">#color/myWindowBackground</item>
<item name="android:windowContentTransitions">true</item>
</style>
<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
<item name="spinBars">true</item>
<item name="color">#android:color/white</item>
</style>
<style name="ToolBarStyle" parent="">
<item name="android:elevation">#dimen/toolbar_elevation</item>
<item name="popupTheme">#style/ThemeOverlay.AppCompat.Light</item>
<item name="theme">#style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>
</resources>
I'm trying to implement this in a gridview .(like in google play music)
try to use android.support.v7.widget.PopupMenu instead of android.widget.PopupMenu
Related
I still haven't found the correct solution to change the background color for PopupMenu. But in this case i am using AppTheme.NoActionBar for particular reason. Here's my style
<style name="DarkThemeNoAppBar" parent="AppTheme.NoActionBar">
<item name="backgroundcolor">#3d3b3b</item>
<item name="cardbackground">#5e5b5b</item>
<item name="textcolor">#ede7e7</item>
<item name="textcolordrawer">#faf6f6</item>
<item name="tintcolor">#d9d4d4</item>
<item name="buttoncolor">#45b6ac</item>
<item name="texttitlecolor">#ede7e7</item>
<item name="backgroundcolorlayout">#181818</item>
<item name="android:itemBackground">#181818</item>
<item name="android:textColor">#ede7e7</item>
<item name="popupMenuStyle">#style/popupMenuDarkStyle</item>
</style>
<style name="popupMenuDarkStyle" parent="Widget.AppCompat.PopupMenu">
<item name="android:popupBackground">#181818</item>
</style>
If you see popupMenuStyle, this popupMenuDarkStyle does not give any effect in UI. Many literature in google solve this problem but it only for Theme.AppCompat.Light.DarkActionBar but in my case i need to use AppTheme.NoActionBar. Please someone give me some advice.
UPDATE 2
this below is the second attempt
<style name="DarkThemeNoAppBar" parent="AppTheme.NoActionBar">
<item name="backgroundcolor">#3d3b3b</item>
<item name="cardbackground">#5e5b5b</item>
<item name="textcolor">#ede7e7</item>
<item name="textcolordrawer">#faf6f6</item>
<item name="tintcolor">#d9d4d4</item>
<item name="buttoncolor">#45b6ac</item>
<item name="texttitlecolor">#ede7e7</item>
<item name="backgroundcolorlayout">#181818</item>
<item name="android:itemBackground">#181818</item>
<item name="android:textColor">#ede7e7</item>
<item name="android:popupMenuStyle">#style/popupMenuDarkStyle</item>
</style>
<style name="popupMenuDarkStyle" parent="ThemeOverlay.AppCompat.Light">
<item name="android:popupBackground">#181818</item>
</style>
My PopupMenu is attached on optionMenu (on Burger button), here how optionsMenu created in Activity.
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Manual add menu
menu.add(0, 1, 1, DesignUtil.menuIconWithText(getResources()
.getDrawable(R.drawable.ic_bookmark_black), "Bookmark"));
menu.add(0, 2, 1, DesignUtil.menuIconWithText(getResources()
.getDrawable(R.drawable.ic_settings_black_24dp), "Settings"));
return true;
}
Yes, popupmenu display correctly but the background color still can not be changed
Try this, it works for me
step 1.create new style
<style name="popupMenuStyle" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:textColor">#2FAC7E</item>
<item name="android:textSize">18sp</item>
<item name="android:itemBackground">#181818</item>
</style>
step 2.add this line in your activity where you add PopUpMenu
Context wrapper = new ContextThemeWrapper(activity, R.style.popupMenuStyle);
final PopupMenu popup = new PopupMenu(wrapper, view);
It work for me when i created menu by using onCreateOptionMenu,try this
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:itemBackground">#181818</item>
<item name="android:textColor">#color/colorAccent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="colorPrimary">#color/colorPrimary</item>
<item name="colorPrimaryDark">#color/colorPrimaryDark</item>
<item name="colorAccent">#color/colorAccent</item>
<item name="windowActionBar">false</item>
</style>
This worked for me:
<style name="DarkThemeNoAppBar" parent="AppTheme.NoActionBar">
<item name="backgroundcolor">#3d3b3b</item>
<item name="cardbackground">#5e5b5b</item>
<item name="textcolor">#ede7e7</item>
<item name="textcolordrawer">#faf6f6</item>
<item name="tintcolor">#d9d4d4</item>
<item name="buttoncolor">#45b6ac</item>
<item name="texttitlecolor">#ede7e7</item>
<item name="backgroundcolorlayout">#181818</item>
<item name="android:itemBackground">#181818</item>
<item name="android:textColor">#ede7e7</item>
<!--The "android:" prefix is for a regular widget, such as android.widget.PopupMenu,
while the ones without this prefix are for the support library versions of these widgets-->
<item name="popupMenuStyle">#style/popupMenuDarkStyle</item>
<item name="android:popupMenuStyle">#style/popupMenuDarkStyle</item>
</style>
<style name="popupMenuDarkStyle" parent="ThemeOverlay.AppCompat.Light">
<item name="android:popupBackground">#181818</item>
</style>
Using ThemeOverlay.AppCompat.Light as the parent might not be necessary, but I included it because that's how mine is set up and it works. The key is probably android:popupMenuStyle rather than popupMenuStyle.
i try change background color option menu from black to white
but my code not work.i see this link too How to change background color popup menu android but its not work for me.
styles
<style name="Theme.DesignDemo" parent="Base.Theme.DesignDemo">
</style>
<style name="Base.Theme.DesignDemo" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">#color/ColorPrimary</item>
<item name="popupMenuStyle">#style/PopupMenu</item>
<item name="colorPrimaryDark">#color/ColorPrimaryDark</item>
</style>
<style name="PopupMenu" parent="Widget.AppCompat.PopupMenu">
<item name="android:popupBackground">#android:color/white</item>
</style>
</resources>
popup_menu.xml:
<?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">
<!--///showAsAction="always" ///-->
<item android:id="#+id/action_settings" android:title="Share" showAsAction="always" />
<item android:id="#+id/action_settings1" android:title="Bluetooth" showAsAction="always" />
<item android:id="#+id/action_settings2" android:title="Exit" showAsAction="always" />
<!--/android:showAsAction="ifRoom"/-->
<item android:id="#+id/action_settings3" android:title="Share" android:showAsAction="ifRoom" />
<item android:id="#+id/action_settings4" android:title="Bluetooth" android:showAsAction="ifRoom" />
</menu>
How to change background color option menu
Have you controlled the context you passed to the constructor? When you create a PopupMenu class, please use the Activity context like this :
PopupMenu popup = new PopupMenu(this, anchorView);//Not BaseContext
Whether you use android.widget.PopupMenu or android.support.v7.widget.PopupMenu? They governed by different theme attributes :
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- if using android.widget.PopupMenu -->
<item name="android:popupMenuStyle">#style/PopupMenu</item>
<!-- if using android.support.v7.widget.PopupMenu -->
<item name="popupMenuStyle">#style/PopupMenu</item>
</style/>
<style name="PopupMenu" parent="Widget.AppCompat.PopupMenu">
<item name="android:popupBackground">#android:color/white</item>
</style>
Effect like this.
I am trying to style the items of my popup so they look like a list of buttons below eachother. The only problem is that I can't get to change anything of the popup items. I have tried to set a global popupMenuStyle in my app style but that didn't to anything. I tried to set an actionLayout on the menu items but still no change.
How can I change the styling of my popup menu items?
My menu:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="#+id/test1"
android:title="Test" />
<item android:id="#+id/test2"
android:title="Test 2" />
</menu>
How I open the popup menu:
PopupMenu popupMenu = new PopupMenu(getContext(), mButton);
popupMenu.getMenuInflater().inflate(R.menu.popup_menu, popupMenu.getMenu());
popupMenu.show();
Try this as part of your styles.xml file:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:popupMenuStyle">#style/PopupMenu</item>
<item name="android:textAppearanceLargePopupMenu">#style/myPopupMenuTextAppearanceLarge</item>
<item name="android:textAppearanceSmallPopupMenu">#style/myPopupMenuTextAppearanceSmall</item>
</style>
<style name="PopupMenu" parent="#android:style/Widget.PopupMenu">
<item name="android:popupBackground">#FFFFFF</item>
<item name="android:divider">#444444</item>
<item name="android:dividerHeight">1px</item>
<item name="android:background">#FFFFFF</item>
</style>
<style name="myPopupMenuTextAppearanceSmall" parent="#android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Small">
<item name="android:textColor">#000000</item>
<item name="android:textSize">12sp</item>
<item name="android:background">#FFFFFF</item>
</style>
<style name="myPopupMenuTextAppearanceLarge" parent="#android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Large">
<item name="android:textColor">#000000</item>
<item name="android:textSize">18sp</item>
<item name="android:background">#FFFFFF</item>
</style>
</resources>
and then in your xml layout file for the activity add this line:
style="#style/AppTheme"
or in your AndroidManifest.xml file, add this to the application tag:
android:theme="#style/AppTheme"
This will affect how Android renders a popup menu in your app.
I've got one trouble while changing android design. I need to change action bar menu background color to black. I know, there are lots of answers for this question. I tried many of them. But nothing worked for me.
Oh, and i forgot to say, that i am not a very skilled android developer. Here's my styles file (v21)
<?xml version="1.0" encoding="utf-8"?>
<style name="AppTheme" parent="#style/Theme.AppCompat.Light">
<item name="colorPrimary">#color/mainColor</item>
<item name="colorPrimaryDark">#color/secondaryColor</item>
<item name="colorAccent">#color/goldColor</item>
<item name="colorControlNormal">#color/mainColor</item>
<item name="colorControlActivated">#color/secondaryColor</item>
<item name="colorControlHighlight">#color/secondaryColor</item>
<item name="android:navigationBarColor">#color/blackColor</item>
<item name="colorSwitchThumbNormal">#color/secondaryTextColor</item>
<item name="android:windowContentOverlay">#null</item>
<item name="android:textColorPrimary">#color/goldColor</item>
<item name="android:windowBackground">#color/blackColor</item>
<item name="android:itemTextAppearance">#color/normalTextColor</item>
<item name="android:buttonStyle">#style/ButtonStyle</item>
<item name="android:actionMenuTextColor">#color/blackColor</item>
<item name="actionMenuTextColor">#color/blackColor</item>
<item name="android:actionBarPopupTheme">#style/Theme.Red.Widget</item>
<item name="android:popupTheme">#color/blackColor</item>
</style>
<style name="Theme.Red.Widget" parent="#style/Theme.AppCompat">
<item name="popupMenuStyle">#style/PopupMenu.Red</item>
<item name="dropDownListViewStyle">#style/DropDownListView.Red</item>
</style>
<style name="PopupMenu.Red" parent="#style/Widget.AppCompat.PopupMenu">
<item name="android:popupBackground">#color/blackColor</item>
</style>
<style name="DropDownListView.Red" parent="#style/Widget.AppCompat.ListView.DropDown">
<item name="android:listSelector">#color/blackColor</item>
</style>
<color name="mainColor">#373737</color>
<color name="secondaryColor">#252525</color>
<color name="goldColor">#cea939</color>
<style name="Divider">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">1dp</item>
<item name="android:background">?android:attr/listDivider</item>
</style>
<style name="ButtonStyle" parent="android:Widget.Button">
<item name="android:background">#drawable/custom_btn</item>
</style>
And here is my code for lower android releases.
<resources>
<style name="AppTheme" parent="#style/Theme.AppCompat.Light">
<item name="colorPrimary">#color/mainColor</item>
<item name="colorPrimaryDark">#856f2d</item>
<item name="colorAccent">#color/mainColor</item>
<item name="colorControlNormal">#color/mainColor</item>
<item name="colorControlActivated">#856f2d</item>
<item name="colorControlHighlight">#856f2d</item>
<item name="colorSwitchThumbNormal">#color/mainColor</item>
<item name="android:windowContentOverlay">#null</item>
<item name="android:textColorPrimary">#color/blackColor</item>
<item name="android:textColorSecondary">#color/blackColor</item>
<item name="android:textColorTertiary">#color/blackColor</item>
<item name="android:windowBackground">#color/backgroundColor</item>
<item name="android:itemTextAppearance">#color/normalTextColor</item>
<item name="android:editTextBackground">#drawable/apptheme_edit_text_holo_light</item>
<item name="android:textColorHighlight">#99cea939</item>
<item name="android:textSelectHandleLeft">#drawable/apptheme_text_select_handle_left</item>
<item name="android:textSelectHandleRight">#drawable/apptheme_text_select_handle_right</item>
<item name="android:textSelectHandle">#drawable/apptheme_text_select_handle_middle</item>
<item name="android:autoCompleteTextViewStyle">#style/AutoCompleteTextViewAppTheme</item>
<item name="android:listChoiceIndicatorMultiple">#drawable/apptheme_btn_check_holo_light</item>
<item name="android:listChoiceIndicatorSingle">#drawable/apptheme_btn_radio_holo_light</item>
<item name="android:buttonStyle">#style/ButtonAppTheme</item>
<item name="android:imageButtonStyle">#style/ImageButtonAppTheme</item>
<item name="android:dropDownSpinnerStyle">#style/SpinnerAppTheme</item>
<item name="android:progressBarStyleHorizontal">#style/ProgressBarAppTheme</item>
<item name="android:seekBarStyle">#style/SeekBarAppTheme</item>
<item name="android:ratingBarStyle">#style/RatingBarAppTheme</item>
<item name="android:ratingBarStyleIndicator">#style/RatingBarBigAppTheme</item>
<item name="android:ratingBarStyleSmall">#style/RatingBarSmallAppTheme</item>
<item name="android:buttonStyleToggle">#style/ToggleAppTheme</item>
<item name="android:listChoiceBackgroundIndicator">#drawable/apptheme_list_selector_holo_light</item>
<item name="android:activatedBackgroundIndicator">#drawable/apptheme_activated_background_holo_light</item>
<item name="android:fastScrollThumbDrawable">#drawable/apptheme_fastscroll_thumb_holo</item>
</style>
<style name="SettingsToolbarTheme" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="android:textColorPrimary">#color/goldColor</item>
<item name="actionMenuTextColor">#color/abc_primary_text_material_light</item>
<item name="android:textColorSecondary">#color/goldColor</item>
</style>
<style name="Divider">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">1dp</item>
<item name="android:background">?android:attr/listDivider</item>
</style>
<style name="AutoCompleteTextViewAppTheme" parent="android:Widget.Holo.Light.AutoCompleteTextView">
<item name="android:dropDownSelector">#drawable/apptheme_list_selector_holo_light</item>
<item name="android:background">#drawable/apptheme_edit_text_holo_light</item>
</style>
<style name="ButtonAppTheme" parent="android:Widget.Holo.Light.Button">
<item name="android:background">#drawable/apptheme_btn_default_holo_light</item>
</style>
<style name="ImageButtonAppTheme" parent="android:Widget.Holo.Light.ImageButton">
<item name="android:background">#drawable/apptheme_btn_default_holo_light</item>
</style>
<style name="SpinnerAppTheme" parent="android:Widget.Holo.Light.Spinner">
<item name="android:background">#drawable/apptheme_spinner_background_holo_light</item>
<item name="android:dropDownSelector">#drawable/apptheme_list_selector_holo_light</item>
</style>
<style name="TabAppTheme">
<item name="android:gravity">center_horizontal</item>
<item name="android:paddingLeft">16dip</item>
<item name="android:paddingRight">16dip</item>
<item name="android:background">#drawable/apptheme_tab_indicator_holo</item>
<item name="android:layout_width">0dip</item>
<item name="android:layout_weight">1</item>
<item name="android:minWidth">80dip</item>
</style>
<style name="TabTextAppTheme">
<item name="android:textColor">#000000</item>
<item name="android:textSize">12sp</item>
<item name="android:textStyle">bold</item>
<!-- v14 <item name="android:textAllCaps">true</item> -->
<item name="android:ellipsize">marquee</item>
<item name="android:maxLines">2</item>
<item name="android:maxWidth">180dip</item>
</style>
<style name="ProgressBarAppTheme" parent="android:Widget.Holo.Light.ProgressBar.Horizontal">
<item name="android:progressDrawable">#drawable/apptheme_progress_horizontal_holo_light</item>
<item name="android:indeterminateDrawable">#drawable/apptheme_progress_indeterminate_horizontal_holo_light</item>
</style>
<style name="SeekBarAppTheme" parent="android:Widget.Holo.Light.SeekBar">
<item name="android:progressDrawable">#drawable/apptheme_scrubber_progress_horizontal_holo_light</item>
<item name="android:indeterminateDrawable">#drawable/apptheme_scrubber_progress_horizontal_holo_light</item>
<item name="android:thumb">#drawable/apptheme_scrubber_control_selector_holo_light</item>
</style>
<style name="RatingBarAppTheme" parent="android:Widget.Holo.Light.RatingBar">
<item name="android:progressDrawable">#drawable/apptheme_ratingbar_full_holo_light</item>
<item name="android:indeterminateDrawable">#drawable/apptheme_ratingbar_full_holo_light</item>
</style>
<style name="RatingBarBigAppTheme" parent="android:Widget.Holo.Light.RatingBar.Indicator">
<item name="android:progressDrawable">#drawable/apptheme_ratingbar_holo_light</item>
<item name="android:indeterminateDrawable">#drawable/apptheme_ratingbar_holo_light</item>
</style>
<style name="RatingBarSmallAppTheme" parent="android:Widget.Holo.Light.RatingBar.Small">
<item name="android:progressDrawable">#drawable/apptheme_ratingbar_small_holo_light</item>
<item name="android:indeterminateDrawable">#drawable/apptheme_ratingbar_small_holo_light</item>
</style>
<style name="ToggleAppTheme" parent="android:Widget.Holo.Light.Button.Toggle">
<item name="android:background">#drawable/apptheme_btn_toggle_holo_light</item>
</style>
I would be very thankful to you for any help.
add actionOverflowMenuStyle item to your app theme
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="actionOverflowMenuStyle">#style/CMOptionsMenu</item>
</style>
<style name="CMOptionsMenu" parent="Widget.AppCompat.PopupMenu.Overflow">
<item name="android:popupBackground">your color code</item>
</style>
Background Color of menu / drop down / spinner
One of a few options:
Edit styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">#color/colorPrimary</item>
<item name="colorPrimaryDark">#color/colorPrimaryDark</item>
<item name="colorAccent">#color/colorAccent</item>
<item name="android:popupMenuStyle">#style/PopupMenu</item>
<item name="android:popupBackground">#272727</item>
<item name="android:itemBackground">#cc9d3e</item>
</style>
Create popup_menu.xml under res/menu/ like this:
<?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:layout_width="32dp"
android:tint="#color/timeSettings"
app:popupTheme="#style/PopupMenu">
<item
android:id="#+id/min0"
android:orderInCategory="100"
android:title="0"
app:showAsAction="never" />
</menu>
Edit popupMenu in your java-file:
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_clock);
//Time
secBtn = (Button) findViewById(R.id.btn_sec);
secBtn.setText("00");
//levelBtn.setTypeface(tf1);
secBtn.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(MainActivityClock.this, secBtn);
popupMenu.getMenuInflater().inflate(R.menu.popup_menu_sec, popupMenu.getMenu());
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
#Override
public boolean onMenuItemClick(MenuItem item) {
//Toast.makeText(MainActivity.this, "" + item.getTitle(), Toast.LENGTH_SHORT).show();
secBtn.setText("" + item.getTitle());
workTime_sec = Integer.parseInt(item.getTitle().toString());
//sec = item.getTitle().toString();
System.out.println("workTime_sec: " + workTime_sec);
return true;
}
});
popupMenu.show();
}
});
}
You can simply add the line like this:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- To change the background of options menu-->
<item name="android:itemBackground">*Your_color*</item>
</style>
The answer by Rakesh Kalashetti worked for me with a small change - actionOverflowMenuStyle must be prefixed with android: namespace, i.e.:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionOverflowMenuStyle">#style/CMOptionsMenu</item>
</style>
<style name="CMOptionsMenu" parent="Widget.AppCompat.PopupMenu.Overflow">
<item name="android:popupBackground">your color code</item>
</style>
I want to change default divider color of my option menu, so can give me some suggestion or technical?
Its working for me in Navigationmenu.
This below line is mandatory.
<item name="android:listDivider">#color/white</item>
//This is ur style
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">#color/colorPrimary</item>
<item name="colorPrimaryDark">#color/colorPrimaryDark</item>
<item name="colorAccent">#color/colorAccent</item>
<item name="android:listDivider">#color/white</item>
</style>
//This is ur menu item.
<?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_profile"
android:icon="#drawable/m_profile"
android:title="#string/my_profile" />
<group android:id="#+id/my_id">
<item
android:id="#+id/nav_coming"
android:icon="#drawable/m_coming"
android:title="#string/comingsoon" />
</group>
</group>
</menu>
you can do it by setting theme to your popup menu
use below code in your style.xml file in res folder
<style name="MyThemePopup" parent="#android:style/Theme.Holo.Light.DarkActionBar">
<item name="android:textColor">#color/white</item>
<item name="android:dividerHeight">2px</item>
<item name="android:divider">#F00</item>
<item name="android:popupMenuStyle">#style/PopupMenu</item>
</style>
<style name="PopupMenu" parent="#android:style/Widget.PopupMenu">
<item name="android:popupBackground">#color/opaque_black_color_dark</item>
</style>
above code is for creating theme where <item name="android:divider">#F00</item> is use for setting color to divider
after that you can set created theme to your activity in which popup menu is present through manifest file
<activity
android:name="com.android.MainActivity"
android:theme="#style/MyThemePopup" />
hope this code will help you to achieve your requirement happy coding :)
Does nothing for me, maybe because of the appCompat version?
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">#style/MyActionBar</item>
<item name="actionBarStyle">#style/MyActionBar</item>
<item name="android:dividerHeight">2dp</item>
<item name="android:divider">#color/ucc_blue</item>
</style>
It doesn't matter if i put it in the MyActionBar style or in the AppTheme style both won't work. But setting the divider height does make my OptionMenu scrollable....
Maybe it doesn't work because they are subMenuItems?
add this item to the app theme:
<style name="theme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:dropDownListViewStyle">#style/MyDropDownListView</item>
</style>
<style name="MyDropDownListView" parent="#android:style/Widget.ListView.DropDown">
<item name="android:divider">#color/transparent</item>
</style>
For those who have not found the answer yet for this problem, this is how it worked for me and hope it will work for you as well:
<style name="PopupMenu">
<item name="android:itemBackground">#color/background_medium_gray</item>
<item name="android:background">#android:color/transparent</item>
<item name="android:textColor">#android:color/black</item>
<item name="android:colorBackground">#color/BackgroundGray</item>
<item name="android:dividerHeight">1dp</item>
</style>
Context context = new ContextThemeWrapper(getActivity(), R.style.PopupMenu);
final PopupMenu popupMenu = new PopupMenu(context, view);
final MenuInflater menuInflater = popupMenu.getMenuInflater();