一、在listview中使用点击某一控件弹出PopupMenu位置错乱的问题
在项目开发中用到了PopupMenu控件,因为之前用过,使用方法比较简单,没太注意。这次在ListView中使用时发现位置不对,经查找发现需要在事件方法中使用异步创建设置PopupMenu位置才有效。关于为什么会这样子,现在还没有想通,以后有想法,再来补充吧。
viewHolder.llArrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
view.post(new Runnable() {
@Override
public void run() {
Context wrapper = new ContextThemeWrapper(mContext,R.style.popupMenuStyle);
mPopupMenu = new PopupMenu(wrapper,view);
mPopupMenu.inflate(R.menu.menu_consulting);
mPopupMenu.setOnMenuItemClickListener(new SickConsultingAdapter.MyMenuItemClickListener(position));
mPopupMenu.show();
}
});
}
});
二、设置PopupMenu的Item样式并使用
童鞋们可能已经注意到了上面代码中新建PopupMenu的方法了
Context wrapper = new ContextThemeWrapper(mContext,R.style.popupMenuStyle);
mPopupMenu = new PopupMenu(wrapper,view);
没错正式通过自定义popupMenuStyle样式来实现的
<style name="popupMenuStyle" >
<item name="android:textColor">@color/black</item>
<item name="android:itemBackground">@color/white</item>
<item name="android:divider">@color/dark_grey</item>
<item name="android:dividerHeight">1dp</item>
</style>
三、参考文献
1、http://blog.csdn.net/jushenziao/article/details/51691585
2、https://stackoverflow.com/questions/40694486/styling-android-popupmenu-divider-lines