我在我的Android应用中使用Sattelite Menu。
我把它作为我的项目包含在内,添加了以下XML和Java,应用程序运行正常,没有错误。
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:sat="http://schemas.android.com/apk/res/android.view.ext"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<android.view.ext.SatelliteMenu
android:id="@+id/menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|left"
android:layout_margin="8dp"
sat:satelliteDistance="170dp"
sat:mainImage="@drawable/ic_launcher"
sat:totalSpacingDegree="90"
sat:closeOnClick="true"
sat:expandDuration="500"/>
</FrameLayout>
和Java:
SatelliteMenu menu = (SatelliteMenu) findViewById(R.id.menu);
List<SatelliteMenuItem> items = new ArrayList<SatelliteMenuItem>();
items.add(new SatelliteMenuItem(3, R.drawable.ic_launcher));
items.add(new SatelliteMenuItem(2, R.drawable.ic_launcher));
items.add(new SatelliteMenuItem(1, R.drawable.ic_launcher));
应用程序启动,左下角的小菜单图标符合预期。点击它,然后弹出一个带有花哨动画的小按钮。再次单击它,菜单关闭,按钮返回另一个奇特的动画。
问题开始.. 现在,当我再次点击它(第3次)时,这次没有动画。按钮只是出现在正确的位置(并且仍在工作),但它们不会飞出。由于某种原因,动画无法启动。
我试图查看来源,这不应该发生。即使是示例应用程序也很完美。但是当我在我自己的应用程序中实现它时,动画只在我打开菜单时第一次工作。
导致这种情况的原因是什么?
谢谢!
编辑:此解决方案也不起作用。它什么都没做:/
private void onClick() {
if (plusAnimationActive.compareAndSet(false, true)) {
if (!rotated) {
resetItems();
imgMain.startAnimation(mainRotateLeft);
for (SatelliteMenuItem item : menuItems) {
item.getView().startAnimation(item.getOutAnimation());
}
} else {
resetItems();
imgMain.startAnimation(mainRotateRight);
for (SatelliteMenuItem item : menuItems) {
item.getView().startAnimation(item.getInAnimation());
}
}
rotated = !rotated;
}
}
答案 0 :(得分:0)
布局动画在将视图添加到布局时运行。因此,您必须在每次展开/折叠时手动添加/删除视图才能使布局动画生效。