您好我必须创建一个PopUp菜单,我知道如何做到这一点。
这是我创建默认PopUp菜单的代码..
popup_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/item"
android:showAsAction="ifRoom|withText"
android:title="item1"
android:visible="true"/>
<item
android:id="@+id/item2"
android:showAsAction="ifRoom|withText"
android:title="item2"
android:visible="true"/>
<item
android:id="@+id/item3"
android:showAsAction="ifRoom|withText"
android:title="item3"
android:visible="true"/>
PopUpMenu_Activity.java
findViewById(R.id.btn_click).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
PopupMenu popupMenu = new PopupMenu(PopMenuActivity.this, view);
popupMenu.setOnMenuItemClickListener(PopMenuActivity.this);
popupMenu.inflate(R.menu.popup_menu);
popupMenu.show();
}
});
和
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.item1:
Toast.makeText(this, "item1 clicked", Toast.LENGTH_SHORT).show();
return true;
case R.id.item2:
Toast.makeText(this, "item2 clicked", Toast.LENGTH_SHORT).show();
return true;
case R.id.item3:
Toast.makeText(this, "item3 clicked", Toast.LENGTH_SHORT).show();
return true;
default:
return false;
}
}
我的问题是如何自定义它?我想在PopUp菜单中添加半透明背景的自定义字体,如图所示。 请帮忙...... !!!
答案 0 :(得分:8)
您可以使用ListPopupWindow。您可以将自定义适配器提交到ListPopupWindow的对象,并将其外观自定义为getView
答案 1 :(得分:2)
您可以在菜单xml中使用android:actionViewClass
属性来定义您自己的自定义类
答案 2 :(得分:1)
自定义android:spinnerDropDownItemStyle
actionBarWidgetTheme
更改文字外观。
另外,请不要忘记下拉列表由您使用的适配器管理。然后,如果您使用标准(simple_dropdown_item_1line)
那就没有问题。但是,如果你使用像我这样的自定义(可以添加图标),请不要忘记在布局style="?attr/spinnerDropDownItemStyle"
中应用TextView
。
最终的自定义样式是:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.myapp" parent="@style/Theme.Light.DarkActionBar">
<item name="android:actionDropDownStyle">@style/myapp_DropDownNav</item>
<item name="android:actionBarWidgetTheme">@style/myapp.actionBarWidgetTheme</item>
</style>
<style name="myapp.actionBarWidgetTheme" parent="@style/Theme.">
<item name="android:spinnerDropDownItemStyle">@style/myapp.Widget.DropDownItem.Spinner</item>
</style>
<style name="myapp_DropDownNav" parent="@style/Widget.Spinner.DropDown.ActionBar">
<item name="background">@drawable/spinner_background_ab_myapp</item>
<item name="android:background">@drawable/spinner_background_ab_myapp</item>
<item name="android:popupBackground">@drawable/menu_dropdown_panel_myapp</item>
<item name="android:dropDownSelector">@drawable/selectable_background_myapp</item>
</style>
<style name="myapp.Widget.DropDownItem.Spinner" parent="Widget.DropDownItem.Spinner">
<item name="android:textAppearance">@style/myapp.TextAppearance.Widget.DropDownItem</item>
</style>
<style name="myapp.TextAppearance.Widget.DropDownItem" parent="TextAppearance.Widget.DropDownItem">
<item name="android:textColor">@color/black</item>
</style>