android浮动界面,Android开发之浮动Activity

场景

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

a5f64e165ba7

activity.png

分析

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

案例

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

a5f64e165ba7

float activity.png

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

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

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

true//此对话框的背景

@android:color/transparent//对话框是否透明

@null//对话框是否有遮盖

true//对话框无标题

true //对话框是否浮动

true//是否允许对话框的背景变暗

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

android:name="com.activity.SelYearActivity"

android:theme="@style/Theme.Transparent">

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

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

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();

}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值