Android:在应用程序内部向上滑动查看

时间:2015-10-28 21:47:20

标签: java android xml user-interface view

在我正在创建的新应用中,我正在建立一个成就系统。我没有让Toast点击动作起作用,所以我决定使用另一个视图可能是一个好主意(我实际上更喜欢)。

这个想法:我希望在我的所有活动中都可以访问该视图,这些视图隐藏在屏幕下方。当一个成就被解锁时,视图会向上滑动并说出" Achievement Unlocked:",然后在 x 秒之后向下滑动。

我如何创建此视图,然后如何将其添加到我的所有活动中以允许它随时向上滑动?我也想给它一个ID。

1 个答案:

答案 0 :(得分:0)

我更愿意使用一个活动,并在其中托管其他片段。通过这种方式,可以很容易地在FrameLayout中显示/隐藏片段。但是考虑到你想在任何Activity中显示某种弹出窗口,从底部开始动画,我会创建一个新的Activity,其中包含animation_in(从底部滑动)和animation_out(滑出到底部)。此外,如果您想将活动的任何部分设置为透明,您可以修改" popupActivity"使主题变得透明。通过这种方式,您可以在任何活动中从底部显示弹出窗口。

示例:

  1. anim文件夹中创建res文件夹。
  2. slide_in_from_bottom_to_top.xml中创建anim并插入以下xml代码:

    <?xml version="1.0" encoding="utf-8"?>
    <set>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromYDelta="100%"
        android:toYDelta="0"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:duration="500"/>
    </set>
    
  3. slide_out_to_bottom_from_top.xml文件夹中创建anim

     <?xml version="1.0" encoding="utf-8"?>
    <set>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromYDelta="0"
        android:toYDelta="100%"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:duration="500"/>
     </set>
    
  4. 要使用动画启动活动,只需在overridePendingTransition onCreate内的PopupActivity方法中overridePendingTransition(R.anim.slide_in_from_bottom_to_top, R.anim.slide_out_to_bottom_from_top); ,如下所示:

    Intent i = new Intent(getApplicationContext(), NewActivity.class);
    i.putExtra("new_variable_name","value");
    startActivity(i);
    
  5. 将数据发送到活动并检索它:

    在您当前的活动中,创建一个新的意图:

    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        String value = extras.getString("new_variable_name");
    }
    

    然后在新的Activity中,检索这些值:

    SnackBar

    使用此技术将变量从一个Activity传递到另一个Activity。

    但考虑到您并不需​​要所有这些,您只需使用CurrDay,就可以在此处举例:http://www.androidhive.info/2015/09/android-material-design-snackbar-example/