我正在创建一个像app一样的朋友跟踪器。它由以下动画描述组成: 当点击标记时,屏幕底部的向上滑动菜单会显示屏幕的一半,再次点击标记会向下滑动。
标记点击幻灯片动画图片:
我想:点击地图上的任意位置时向下滑动菜单。意味着菜单启动时,我希望它可以点击标记或地图上的任何位置。 请帮助我实现它。
调用标记点击动画的代码:
public void animation(Marker m, LatLng loc) {
Fragment f = getFragmentManager().findFragmentByTag(LIST_FRAGMENT_TAG);
// googleMap.animateCamera(CameraUpdateFactory.zoomTo(10));
googleMap.setMyLocationEnabled(true);
googleMap.getUiSettings().setAllGesturesEnabled(true);
googleMap.getUiSettings().setRotateGesturesEnabled(false);
if (f != null) {
getFragmentManager().popBackStack();
} else {
getFragmentManager()
.beginTransaction()
.setCustomAnimations(R.anim.slide_up,
R.anim.slide_down,
R.anim.slide_up,
R.anim.slide_down)
.add(R.id.list_fragment_container, BaseMapSlidingFragment
.instantiate(this, BaseMapSlidingFragment.class.getName()),
LIST_FRAGMENT_TAG
)
.addToBackStack(null).commit();
googleMap.getUiSettings().setAllGesturesEnabled(false);
}}
动画文件: slide_down.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="yFraction"
android:valueType="floatType"
android:valueFrom="0.58"
android:valueTo="1.0"
android:duration="@android:integer/config_mediumAnimTime"/>
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="alpha"
android:valueType="floatType"
android:valueFrom="1"
android:valueTo="0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
slide_up.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="yFraction"
android:valueType="floatType"
android:valueFrom="1.0"
android:valueTo="0.58"
android:duration="@android:integer/config_mediumAnimTime"/>
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="alpha"
android:valueType="floatType"
android:valueFrom="0.58"
android:valueTo="1.0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
答案 0 :(得分:2)
你应该在布局上有一个onClickListener,点击你的菜单应该关闭。
然后创建一个布尔变量(如果菜单未打开则为false,菜单显示时为true),这将记录菜单的状态(菜单是打开还是关闭)。
然后你只需要做两件事:
单击FrameLayout时,通过检查布尔变量值来检查菜单是否打开。
如果菜单显示,那么也可以调用动画方法。
我想现在应该解决这个问题了。
请通过以下评论告诉我这是否有效。