Android活动从底部到顶部以及从上到下的黑色背景问题转换

时间:2017-06-03 09:54:22

标签: android android-transitions

MainActivity与导航抽屉,tabLayout和viewPager有三个片段。

点击片段按钮,需要调用另一个活动。它需要从"从底部到顶部"当它回到主要活动时,它需要"从上到下"过渡。

这是主要的活动用户界面。

enter image description here

enter image description here

以上是从下到上的过渡。我在过渡期间捕获了screeshot。我用红色框突出显示。这是问题所在。我看到黑色区域。

我的AppTheme就是那样

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="android:colorBackground">@android:color/white</item>
        <item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item>
</style>

但我不想看到转型中的黑色区域,如何解决它。 如果需要更改为片段,那么我有另一篇有片段的帖子,他们还有另外一个问题。 bottom_to_top_enter

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:duration="3000"
        android:fromXDelta="0%"
        android:fromYDelta="100%"
        android:toXDelta="0%"
        android:toYDelta="0%" />
</set>

Bottom_to_top_exit

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"  android:shareInterpolator="false">
    <translate
        android:duration="3000"
        android:fromXDelta="0%"
        android:fromYDelta="0%"
        android:toXDelta="0%"
        android:toYDelta="-100%" />
</set>

top_to_bottom_enter

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    android:shareInterpolator="false">
    <translate
        android:duration="3000"
        android:fromXDelta="0%"
        android:fromYDelta="-100%"
        android:toXDelta="0%"
        android:toYDelta="0%" />
</set>

top_to_bottom_exit

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:duration="3000"
        android:fromXDelta="0%"
        android:fromYDelta="0%"
        android:toXDelta="0%"
        android:toYDelta="100%" />
</set>

非常感谢。

2 个答案:

答案 0 :(得分:0)

  

试试这个:

     

在res文件夹中创建anim文件夹并复制这四个文件:

slide_in_bottom.xml:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="100%p"
android:duration="@android:integer/config_longAnimTime"/>  

slide_out_bottom.xml:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0" 
android:duration="@android:integer/config_longAnimTime" /> 

slide_in_top.xml:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
 android:toYDelta="0%p"
android:duration="@android:integer/config_longAnimTime" />

slide_out_top.xml:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:toYDelta="100%p"
android:duration="@android:integer/config_longAnimTime" />

在致电开始活动后调用此

overridePendingTransition(R.anim.slide_in_bottom, R.anim.slide_out_bottom);

overridePendingTransition(R.anim.slide_in_top, R.anim.slide_out_top);

答案 1 :(得分:0)

@Aniruddh Parihar,黑色间隙变得有点小。但还是......

enter image description here