我想要实现的是XML( no code please !!! )来做到这一点:
我不想要下面的xml因为它将我的弹出窗口拖到屏幕顶部
<translate
android:fromYDelta="100%p"
android:toYDelta="0%p"
android:fillAfter="true"
android:interpolator="@android:anim/linear_interpolator"
android:duration="500" />
这是我的XML,但它也不起作用:(
<translate
android:fromYDelta="100%p"
android:toYDelta="-100%"
android:fillAfter="true"
android:interpolator="@android:anim/linear_interpolator"
android:duration="500" />
答案 0 :(得分:2)
如果您有动画方面的经验,那就很简单了!
您需要在/ res文件夹中创建一个名为anim的文件夹,并在该文件夹内放置slide_up.xml动画文件:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="100%"
android:toYDelta="0%"
android:duration="1000" />
</set>
然后是一个slide_down.xml动画文件:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0%"
android:toYDelta="100%"
android:duration="1000" />
</set>
然后,您将在java中创建片段:
String FRAGMENT_TAG = "YOURFRAGMENT"; //this is how you'll look for it in the manager
YourFragment f = new YourFragment();
getSupportFragmentManager().beginTransaction()
.setCustomAnimations(R.anim.slide_up,
R.anim.slide_down)
.replace(R.id.menu_container, f, FRAGMENT_TAG)
.addToBackStack(null).commit();
或者,如果您使用的是弹出窗口:
popupwindow.showAtLocation(getWindow().getDecorView().findViewById(android.R.id.content), Gravity.BOTTOM, 0, 0);
瞧!我不太确定只通过xml这样做的方法。这似乎是一种相当灵活的简单方法之一。