我使用了 app compat theme style 。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:popupMenuStyle">@style/PopupMenu</item>
<item name="android:itemTextAppearance">@style/myCustomMenuTextApearance</item>
<item name="android:listPopupWindowStyle">@style/PopupMenuStyle</item>
</style>
<style name="PopupMenuStyle" parent="Widget.AppCompat.ListPopupWindow">
<item name="android:divider">@drawable/devider</item>
<item name="android:dividerHeight">2dp</item>
</style>
<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
<item name="android:popupBackground">@color/search_panel_color</item>
<item name="android:textColor">@color/activity_button_text_color</item>
<item name="android:shadowColor">@color/activity_theam_color</item>
</style>
<style name="myCustomMenuTextApearance" parent="@android:style/TextAppearance.Widget.TextView.PopupMenu">
<item name="android:textColor">@color/activity_theam_color</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我想在我的菜单项中添加一个分隔符。我尝试了很多东西,但分隔线不适用......有没有办法显示分隔线?
小智 6
我也有同样的问题。解决方法是这样的:
<style name="PopupMenuListView" parent="@style/Widget.AppCompat.ListView.DropDown">
<item name="android:divider">#000000</item>
<item name="android:dividerHeight">1dp</item>
</style>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:dropDownListViewStyle">@style/PopupMenuListView</item>
</style>
Run Code Online (Sandbox Code Playgroud)
您也可以参考以下链接: 如何在特定菜单项之间添加分隔线?
我有一个解决方案。您可以通过编程根据您的选择设计弹出窗口。使用下面的代码来显示弹出菜单。
private ListPopupWindow listPopupWindow;
listPopupWindow = new ListPopupWindow(getApplicationContext());
listPopupWindow.setWidth(400);
listPopupWindow.setDropDownGravity(Gravity.CENTER);
listPopupWindow.setAdapter(new listpopupadapter(a, type));
listPopupWindow.setAnchorView(v);
listPopupWindow.show();
Run Code Online (Sandbox Code Playgroud)
这里 listpopupadapter 是用于设计列表的类,如下所示。
public class listpopupadapter extends BaseAdapter {
ArrayList<String> a;
String type;
public listpopupadapter(ArrayList<String> a, String type) {
this.a = a;
this.type = type;
}
@Override
public int getCount() {
return a.size();
}
@Override
public Object getItem(int position) {
return getItem(position);
}
@Override
public long getItemId(int position) {
return position;
}
@SuppressLint("ViewHolder")
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
View root = LayoutInflater.from(parent.getContext()).inflate(
R.layout.raw_filter, null);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5769 次 |
| 最近记录: |