【问题标题】:Android: Slide View Upwards Anywhere Inside AppAndroid:在应用程序内的任何位置向上滑动视图
【发布时间】:2015-10-28 21:47:20
【问题描述】:

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

想法:我希望在我的所有活动中都可以访问视图,该视图隐藏在屏幕下方。当成就“解锁”时,视图会向上滑动并显示“成就解锁:”,然后在 x 秒后向下滑动。

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

【问题讨论】:

    标签: java android xml user-interface view


    【解决方案1】:

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


    例子:

    1. res 文件夹内创建anim 文件夹。
    2. anim 内创建slide_in_from_bottom_to_top.xml 并插入以下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. anim 文件夹中创建slide_out_to_bottom_from_top.xml

       <?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. 要使用动画启动 Activity,只需在 PopupActivity 中的 onCreate 方法中使用 overridePendingTransition,如下所示:

      overridePendingTransition(R.anim.slide_in_from_bottom_to_top, R.anim.slide_out_to_bottom_from_top);
      

    向活动发送数据并检索它:

    在你当前的 Activity 中,创建一个新的 Intent:

    Intent i = new Intent(getApplicationContext(), NewActivity.class);
    i.putExtra("new_variable_name","value");
    startActivity(i);
    

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

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

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


    但考虑到你不需要所有这些,你可以简单地使用SnackBar,一个例子可以在这里:http://www.androidhive.info/2015/09/android-material-design-snackbar-example/

    【讨论】:

    • 你能举个例子吗?我是新手。 ://
    • 我如何设置样式,就像使用其他视图一样?看到这个:i.imgur.com/daWrYMR.png
    • 这是一个SnackBar,在这里看看它是如何工作的:androidhive.info/2015/09/…
    • 但是如果你还想在PopupActivity中做,只需将activity设置为透明,然后在activity布局中设置父布局为RelativeLayout,并对齐弹出的视图
    • @FlipLunch 谢谢! SnackBar 的东西似乎可以工作。更改您的答案,我会将其标记为已解决。
    猜你喜欢
    • 2019-02-12
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 2022-08-06
    • 1970-01-01
    相关资源
    最近更新 更多