代码之家  ›  专栏  ›  技术社区  ›  Androidizing

向上滑动动画但包裹_内容

  •  1
  • Androidizing  · 技术社区  · 10 年前

    我想实现的是XML( 请不要密码!!! )为此: enter image description here

    我不想要下面的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" />
    
    1 回复  |  直到 10 年前
        1
  •  2
  •   Alex K frank    10 年前

    如果你有动画方面的经验,做起来非常简单!

    您需要在/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实现这一点的方法。这似乎是比较灵活的更简单的方法之一。