ListPopupWindow菜单弹出动画方向从左到右
ListPopupWindow menu popup animation direction from left to right
我有一个 ListPopupMenu,代码如下
public void showPopupMenu(View view) {
ListPopupWindow listPopupWindow = new ListPopupWindow(getActivity());
listPopupWindow.setAdapter(new CollectionItemMenuAdapter(getActivity(), popupMenuList));
listPopupWindow.setWidth((int) getResources().getDimension(R.dimen.menu_width));
listPopupWindow.setHeight(WRAP_CONTENT);
listPopupWindow.setVerticalOffset((int) getResources().getDimension(R.dimen.menu_vertical_offset));
listPopupWindow.setHorizontalOffset((int) getResources().getDimension(R.dimen.menu_horizontal_offset));
listPopupWindow.setAnchorView(view);
listPopupWindow.show();
}
结果如下,当点击设置(在gif中,第一个)时,出现弹出菜单。
但是菜单动画是从右到左出现的。我希望它从左到右显示(就像从设置按钮出现一样)。我可以在不为其创建自定义动画的情况下实现吗?
p/s:我尝试使用 listPopupWindow.setAnimationStyle(...)
自定义动画,但也不起作用
我是这样制作的。
首先,在res/anim文件夹中制作动画集
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<scale android:fromXScale="0" android:fromYScale="1"
android:toXScale="1" android:toYScale="1"
android:duration="700"
/>
</set>
其次,在res/values/styles.xml中添加样式
<style name="Animation">
<item name="android:windowEnterAnimation">@anim/animation</item>
</style>
并使用 setAnimationStyle。
popupWindow.setAnimationStyle(R.style.Animation);
这是弹出窗口。但我认为它们都是一样的。
祝你好运!!
显然,我的问题主要是由于向 listPopupWindow.setAnchorView(view);
发送了错误的视图。我需要发送 "setting-image" 视图而不是 "parent-list-view"。
通过发送正确的视图,我现在有从正确的源开始的动画,即设置图像的点。固定动画如下图
我有一个 ListPopupMenu,代码如下
public void showPopupMenu(View view) {
ListPopupWindow listPopupWindow = new ListPopupWindow(getActivity());
listPopupWindow.setAdapter(new CollectionItemMenuAdapter(getActivity(), popupMenuList));
listPopupWindow.setWidth((int) getResources().getDimension(R.dimen.menu_width));
listPopupWindow.setHeight(WRAP_CONTENT);
listPopupWindow.setVerticalOffset((int) getResources().getDimension(R.dimen.menu_vertical_offset));
listPopupWindow.setHorizontalOffset((int) getResources().getDimension(R.dimen.menu_horizontal_offset));
listPopupWindow.setAnchorView(view);
listPopupWindow.show();
}
结果如下,当点击设置(在gif中,第一个)时,出现弹出菜单。
但是菜单动画是从右到左出现的。我希望它从左到右显示(就像从设置按钮出现一样)。我可以在不为其创建自定义动画的情况下实现吗?
p/s:我尝试使用 listPopupWindow.setAnimationStyle(...)
自定义动画,但也不起作用
我是这样制作的。
首先,在res/anim文件夹中制作动画集
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<scale android:fromXScale="0" android:fromYScale="1"
android:toXScale="1" android:toYScale="1"
android:duration="700"
/>
</set>
其次,在res/values/styles.xml中添加样式
<style name="Animation">
<item name="android:windowEnterAnimation">@anim/animation</item>
</style>
并使用 setAnimationStyle。
popupWindow.setAnimationStyle(R.style.Animation);
这是弹出窗口。但我认为它们都是一样的。
祝你好运!!
显然,我的问题主要是由于向 listPopupWindow.setAnchorView(view);
发送了错误的视图。我需要发送 "setting-image" 视图而不是 "parent-list-view"。
通过发送正确的视图,我现在有从正确的源开始的动画,即设置图像的点。固定动画如下图