在我正在创建的新应用中,我正在建立一个成就系统。我没有让Toast点击动作起作用,所以我决定使用另一个视图可能是一个好主意(我实际上更喜欢)。
这个想法:我希望在我的所有活动中都可以访问该视图,这些视图隐藏在屏幕下方。当一个成就被解锁时,视图会向上滑动并说出" Achievement Unlocked:",然后在 x 秒之后向下滑动。
我如何创建此视图,然后如何将其添加到我的所有活动中以允许它随时向上滑动?我也想给它一个ID。
答案 0 :(得分:0)
我更愿意使用一个活动,并在其中托管其他片段。通过这种方式,可以很容易地在FrameLayout
中显示/隐藏片段。但是考虑到你想在任何Activity
中显示某种弹出窗口,从底部开始动画,我会创建一个新的Activity,其中包含animation_in(从底部滑动)和animation_out(滑出到底部)。此外,如果您想将活动的任何部分设置为透明,您可以修改" popupActivity"使主题变得透明。通过这种方式,您可以在任何活动中从底部显示弹出窗口。
示例:
anim
文件夹中创建res
文件夹。 在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>
在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>
要使用动画启动活动,只需在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);
将数据发送到活动并检索它:
在您当前的活动中,创建一个新的意图:
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/