美文网首页
Activity界面渲染完成后预处理问题

Activity界面渲染完成后预处理问题

作者: androidfan | 来源:发表于2018-12-24 13:08 被阅读0次

Activity界面渲染完成后预处理问题

程序本身就是方便用户生活的,不得不说,app的出现让人们的生活之需要动动手指就能完成以前跑断腿的操作,但是今天的这个预处理,却仍我感觉到丈二和尚摸不着头脑,我们一起来瞧瞧:
事情呢,是这样样子的,正常情况下:
- 订单列表
- 列表里item 点击跳转到详情页
- 详情页面里有个按钮,点击这个按钮会弹出一个评价的弹窗
本来,这样一套流程走下来来是没有任何问题的,但是新的需求是,在新开辟的A界面里,点击支付按钮,支付成功后,主动跳到详情页面,并且,并且,打开弹窗!

微信截图_20181224124838.png
但是,方法总比困难多吧,多百度多思考,这不,解决方法已经出来了:
-首先正常的逻辑依旧是原来的流程。
-我们要做的就是在Activity加载完毕后自动把popowindow 给显示出来
-需要注意的是,在正常显示popwindow 的逻辑里我们要做一些判断,这点等下看代码

那么我们怎么判断Activity是否加载完毕呢?

通过生命周期吗?诚然,这是个方法,可是生命周期未免有些太复杂,有些时候走的顺序又是不一样的,所以不好控制,那么我们将采用一种简单明了的方法 onWindowFocusChanged ,这个方法里返回一个布尔类型的值,true 表示Activity已经拿到焦点,也就是界面已经渲染完毕,false表示Activity还在加载中,这个时候是不能弹窗的。

  override fun onWindowFocusChanged(hasFocus: Boolean) {
        super.onWindowFocusChanged(hasFocus)
        if (hasFocus) {
            if (!isShowIng) {
                if (showPopWinFlag == 10090) {
                    //自动打开弹窗
                    isShowIng = true
                    showPopwinComment(mOrderId)
                }
            }
        }
    }

看代码,这里我做了三层判断,来完成自动弹窗的顺利弹出。

  • hasFocus ,判断Activity是否获取焦点,这是个关键,只有获取焦点了才能继续往下进行。
  • isShowIng ,这个变量是我在Activity一开始就声明出来的,默认值是false,我在正常的流程里,点击事件弹出弹窗的时候置为true
                    orderCommet.setOnClickListener {
                                         //评价订单
                                         isShowIng = true
                                         showPopwinComment(order_id)
    
                                     }
    
    

这里主要就是防止在Activity渲染完成后,一直走onWindowFocusChanged 方法导致popwindow 关闭后依旧弹出的问题。

  • showPopWinFlag 则是支付完成后跳转过来表示要打开弹窗的标识。
  • 当然在这些都顺利弹出后,别忘了,再把 isShowIng = true 置为true.
    至此,一个完整的预加载弹窗就是顺利搞定了。
image.png

相关文章

  • Activity界面渲染完成后预处理问题

    Activity界面渲染完成后预处理问题 程序本身就是方便用户生活的,不得不说,app的出现让人们的生活之需要动动...

  • [knowledgePoint]_[create and sim

    fragment:碎片通常用作Activity活动界面的一部分,来融入界面碎片渲染界面的代码过程 1、 创建页面布...

  • react知识点整理

    react概念:单页面应用程序 轻量级应用框架 jsx 预处理器 babel node.js 服务器渲染界面 np...

  • android 如何获全屏幕view内容

    呕心沥血总结了一篇tips!!!最近在做需求时,遇到需要在activity渲染完成后获取页面最终展示内容,并保存成...

  • [Android] Activity动态显示/隐藏statusb

    问题描述 在Activity创建完成后,根据逻辑隐藏/显示statusbar 解决方案 在setContentVi...

  • iOS 界面流畅 - 离屏渲染

    离屏渲染往往会带来界面卡顿的问题,这里将会讨论 当前屏幕渲染、离屏渲染 以及 CPU 渲染 在 OpenGL 中,...

  • 2018-05-28

    Activity 启动模式为singleTop、singleTask时当Activity界面已在栈顶再次开启界面...

  • 安卓开发个人经验

    说明 仅仅作为记录使用! (1)描述 从界面A(一个Activity)跳转到界面B(一个Activity),在界面...

  • 安卓开发入门教程-Activity

    什么是Activity Activity就是你所看到的各个界面,每个界面都是一个Activity.如果把整个app...

  • 安卓四大组件

    1.Activity(界面展示型组件)Activity生命周期。 启动Activity: onCreate()—>...

网友评论

      本文标题:Activity界面渲染完成后预处理问题

      本文链接:https://www.haomeiwen.com/subject/ustwkqtx.html