在加载活动时保持滑动到底部的活动(就好像它向下滑动以显示新活动)

时间:2014-02-03 16:07:26

标签: java android animation transition

遇到这种转变的一些问题。这是唯一不起作用的过渡。在我的应用程序的主屏幕上,操作栏中有一个设置图标。单击时,设置活动将滑动到顶部(在主屏幕上,主屏幕活动将保持不变)。这很好。

在设置活动中,操作栏中有一个接受图标。单击时,我希望设置活动滑到底部(向下并显示主要活动,再次,不滑动)。目前,当我单击“接受”图标时,不会发生任何转换。它只是揭示了主要活动,没有任何转变。这是我到目前为止的代码:

stay.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:duration="310"
     android:fromYDelta="0%p"
     android:toYDelta="0%p" />
</set> 

slide_out_top.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:duration="300" 
     android:fromYDelta="100%"
     android:toYDelta="0%" />
</set>

slide_in_top.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:duration="300" 
     android:fromYDelta="100%"
     android:toYDelta="0%" />
</set>

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

以下内容适用于我,并且与您描述的行为相同。 主要活动保持在“设置”活动下方,而“设置活动”在创建时从下到上滑动。

反之亦然。完成后,SettingsActivity向下滑动(显示下面的MainActivity)

no_change.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="700"
        android:fromYDelta="0"
        android:toYDelta="0" />

    <alpha
        android:duration="700"
        android:fromAlpha="1.0"
        android:toAlpha="1.0" />

</set>

push_up.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="700"
        android:fromYDelta="100%p"
        android:toYDelta="0" />

    <alpha
        android:duration="700"
        android:fromAlpha="1.0"
        android:toAlpha="1.0" />

</set>

push_down.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="700"
        android:fromYDelta="0"
        android:toYDelta="100%p" />

    <alpha
        android:duration="700"
        android:fromAlpha="1.0"
        android:toAlpha="1.0" />

</set>

MainActivity.java

//somewhere in your code where the Settings activity is started
MainActivity.this.startActivity( new Intent( MainActivity.this, SettingsActivity.class ) );
overridePendingTransition( R.anim.push_up, R.anim.no_change );

SettingsActivity.java

// somewhere in your code where the Settings Activity is finished
finish();
overridePendingTransition( R.anim.no_change, R.anim.push_down );