前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android开发之浮动Activity

Android开发之浮动Activity

作者头像
YungFan
发布2018-04-24 15:19:17
1.6K0
发布2018-04-24 15:19:17
举报
文章被收录于专栏:学海无涯
场景

在使用App时,曾经看到这样一个场景,如下图所示,点击顶部菜单按钮,有一个类似的对话框的列表显示出来,让用户选择其中的一个快递选项,然后选中的快递信息就会填充到底部的Activity中。

activity.png

分析

类似这样的效果到底是怎么做出来的?弹出的是一个普通对话框吗?其实不一定,弹出的可能是一个Activity,但不同的是该Activity是浮动显示在某一个Activity之上,而不是直接跳转。

案例

在最近一个App中有一个界面如下:

float activity.png

点击底层Activity中浮动按钮,会浮动一个年份列表,选择某一个年份后回到底部Activity,然后底部Activity根据选择的年份加载对应的数据。这里底层的Activity略过,重点讲解一下浮动的Activity是如何实现的。

1、由于其本质还是一个Activity,所以看到的界面就是需要在xml中布局,这里非常简单,就是一个ListView,显示年份,比较简单,就不粘贴代码了

2、新建一个style,该style配置Activity为浮动显示

代码语言:javascript
复制
<style name="Theme.Transparent" parent="android:Theme.Dialog">
    <item name="android:windowIsTranslucent">true</item>//此对话框的背景
    <item name="android:windowBackground">@android:color/transparent</item>//对话框是否透明
    <item name="android:windowContentOverlay">@null</item>//对话框是否有遮盖
    <item name="android:windowNoTitle">true</item>//对话框无标题
    <item name="android:windowIsFloating">true</item> //对话框是否浮动
    <item name="android:backgroundDimEnabled">true</item>//是否允许对话框的背景变暗
</style>

3、AndroidManifest.xml中设置Activity的主题如上

代码语言:javascript
复制
<activity
        android:name="com.activity.SelYearActivity"
        android:theme="@style/Theme.Transparent"></activity>

4、在底部的Activity中调用 startActivityForResult,并重写onActivityResult方法接收浮动Activity返回的数据,进行相应的逻辑处理,如之前提到的快递信息。

5、最后在浮动的Activity中设置ListView的点击事件,这里将要将返回的数据添加到Intent中,然后调用 setResultonBackPressed(),传值回底层的Activity并让当前浮动的Activity消失,大功告成。代码如下

代码语言:javascript
复制
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                //将选择的年份回传至上个界面  并让本界面消失
                Intent intent = new Intent();

                intent.putExtra("selYear", years.get(i));

                setResult(RESULT_OK, intent);

                onBackPressed();

            }
        });
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.05.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 场景
  • 分析
  • 案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档