PopupMenu来实现简单的menu比较简单,但是修改器样式比较麻烦
PopupMenu自带动画,但目前发现在华为的机器上回出现动画卡顿,会出现动画重影的bug,只要取消掉动画即可
<style name="NoPopupAnimation" parent="Widget.AppCompat.Light.PopupMenu">
<item name="android:popupAnimationStyle">@null</item>
<item name="android:duration">0</item>
</style>
如果是华为机器就动画时间设置为0
Context wrapper = mActivity;
if ("huawei".equalsIgnoreCase(android.os.Build.MANUFACTURER)) {
wrapper = new ContextThemeWrapper(mActivity, R.style.NoPopupAnimation);
}
PopupMenu popupMenu = new PopupMenu(wrapper, view, Gravity.END);
像背景颜色等设置也可以通过该方法设置