How to customize Popup Menu's background, margin, item text color, item text size?
1.styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="popupMenuStyle">@style/MyPopupMenu</item>
<item name="android:itemTextAppearance">@style/itemTextStyle.AppTheme</item>
</style>
<!-- To change Popup Menu background and margin-->
<style name="MyPopupMenu" parent="@style/Widget.AppCompat.PopupMenu.Overflow">
<item name="android:popupBackground">@android:color/white</item>
<item name="android:dropDownHorizontalOffset">10dp</item>
<item name="android:dropDownVerticalOffset">5dp</item>
</style>
<!-- To change Popup Menu Item's text color and text size-->
<style name="itemTextStyle.AppTheme" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
<item name="android:textColor">#05437e</item>
<item name="android:textSize">12sp</item>
</style>
2.AndroidManifest.xml
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity">
--------
</activity>
</application>
3.menu.xml
Create a resource folder named menu in res folder.Create menu.xml in menu folder.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/item_view"
android:title="@string/item_menu_04"/>
<item
android:id="@+id/item_delete"
android:title="@string/item_menu_05"/>
</menu>
4.activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
tools:context="com.ream.inex.Main2Activity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Popup"/>
</LinearLayout>
5.MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PopupMenu popup = new PopupMenu(MainActivity.this, view);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.inex_menu, popup.getMenu());
popup.setGravity(Gravity.START);
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()){
case R.id.item_view :
Toast.makeText(MainActivity.this, "View", Toast.LENGTH_SHORT).show();
break;
case R.id.item_delete :
Toast.makeText(MainActivity.this, "Delete", Toast.LENGTH_SHORT).show();
break;
}
return false;
}
});
popup.show();
}
});
}
}

No comments:
Post a Comment