android 的activity中addContentView 和 setContentView 的区别

Android:借助addContentView()封装易用的通用加载loading,并防止页面按钮重复点击 O、前言 在应用开发中,由于访问网络是一个相当耗时的操作,当页面加载数据或进行提交数据时,一般我们会在页面上展示一个loading加载图,提示用户进行片刻等待。实现loading加载图的方式多种多样,比如有些刷新框架在用户进行下拉刷新时自带的loading图,或者使用Dialog自定义加载弹框,当需要显示时showDialog当需要隐藏时dismiss即可。 但在实际使用过程中刷新框架自带的下拉loading往往无法在提交数据时使用,而自定义的Dialog在使用过程中可能出现窗体泄露的异常,对此本篇文章 阅读详情

activity 中 addContentView 和 setContentView 的区别是什么?


首先看setContentView

逻辑在PhoneWindow 类中

    @Override
    public void setContentView(int layoutResID) {
        if (mContentParent == null) {
            installDecor();
        } else {
            mContentParent.removeAllViews();
        }
        mLayoutInflater.inflate(layoutResID, mContentParent);
        final Callback cb = getCallback();
        if (cb != null && !isDestroyed()) {
            cb.onContentChanged();
        }
    }

如果多次调用setContentView ,则之后每次都会清空 mContentParent 容器。然后组装资源layoutResID。


addContentView

逻辑也在PhoneWindow 类中

    @Override
    public void addContentView(View view, ViewGroup.LayoutParams params) {
        if (mContentParent == null) {
            installDecor();
        }
        mContentParent.addView(view, params);
        final Callback cb = getCallback();
        if (cb != null && !isDestroyed()) {
            cb.onContentChanged();
        }
    }

如果多次调用addContentView ,则之后每次都会将view添加到mContentParent 容器中。最后产生view 的叠加效果。


结论:

调用 setContentView 。设置时会清空容器再添加 view。无view叠加效果

调用addContentView 。直接添加到view容器中,有view叠加效果。addView的字面意思“添加view”也很贴切。

高通平台power_supply 框架下添加第三方充电IC的驱动方法 1.power_supply电源框架介绍: power supply framework在kernel/drivers/power/下。内核抽象出来power supply子系统为驱动提供了统一的框架。 功能包括: 1.抽象PSY设备的共性,向用户空间提供统一的API; 2.为底层PSY驱动的编写,提供简单、统一的方式,同时封装并实现公共逻辑。 power supply class位于d... 阅读详情

相关推荐

Windows显卡TDR超时导致Unity崩溃?手把手教你修改注册表延长响应时间

本文详细解析了Windows显卡TDR超时导致Unity崩溃的问题,并提供了修改注册表延长响应时间的完整解决方案。通过调整TdrDelay和TdrDdiDelay键值,开发者可以有效避免D3D11设备丢失错误,提升Unity编辑器的稳定性。文章还包含显卡驱动优化、系统性能调优等实用技巧,帮助开发者彻底解决编辑器崩溃问题。

weixin_33737774的博客 621

Framework篇 - 一文搞懂 Activity、View、Window、ViewRootImpl

本文源代码基于 Android 7.0。 前面的文章讲解了 startActivity 的过程:Framework篇 - startActivity 启动过程,那么 Activity、Window、View 和 ViewRootImpl 它们之间到底是一个怎么样的关系呢? 目录: Window 的创建过程 关系图 getWindowManager().addView(...

u014294681的博客 1183

Pinocchio 安装教程|机器人学的必备库

安装pinocchio,不要安装pip3 install pinocchio!

darcsdn 1660

Activity的addContentView()

addContentView() 添加控件

Song_UP 1693

USB的24脚和12脚TYPEC引脚定义

USB 是一种接口,用于将设备连接到计算机上。通过该连接,计算机可以向设备发送数据或检索来自设备的数据。USB 为开发者提供了一个标准接口,适用于多种不同类型的应用。借助于系统的设计过程,USB 设备易于连接和使用。本应用笔记会使该过程变得更加简单。以下是本应用笔记中会使用的概念:USB 历史USB 架构USB 物理接口USB 速度USB 电源USB 端点USB 通信协议USB 描述符USB 类设备USB 枚举与配置过程。

易板 1万+

解锁 STP 与 SOLIDWORKS 转换密码:工具及迪威在线转换秘籍

STP 文件能够完整地记录 3D 模型的几何形状、尺寸、公差、材料属性等丰富信息,无论是简单的机械零件,还是复杂的装配体,都能精准呈现。而在线转换以迪威模型为例,凭借便捷性、高效性和安全性,为广大 3D 专业技术人员和学生党在无需安装额外软件的情况下,轻松实现格式转换提供了有力支持。在实际工作和学习中,可根据自身具体情况灵活选择合适的转换方式,以确保 3D 设计工作流程的顺畅进行,让创意在不同格式间自由流动并绽放光彩。在 3D 设计与建模的广袤世界里,不同格式文件间的转换常常是连接创意与实现的关键桥梁。

技术说明博主 3444

addContentView的两个好用的技巧

android 添加新的XML布局我这里使用过的有两个方法 setContentView(R.layout.activity_home_page); 第一个是setContentView,第二个addContentView;首先setContentView 会替换掉之前添加的layout布局,而addContentView可以不继续在同一个activity里面添加多个不同的layout布局,不

上孟的专栏 1万+

C#开发医学影像胶片打印系统(一):万能花式布局的实现思路

本篇文章将介绍开发医学影像胶片打印系统(printscu模式)遇到不规则排版时的一种思路,一般来讲,医院打印胶片时都是整张胶片打印,但有时需要将多个病人或一个病人的多个检查打印在同一张胶片上,这时候就需要不规则排版来满足打印需求,使胶片利用率最大化。

罗万科技的博客 1325

addContentView和setContentView的区别

两者的区别主要包括两点: 1.  以添加UI组件是否被移除 setContentView() 会导致先前添加的被移除, 即替换性的; 而 addContentView() 不会移除先前添加的UI组件,即是累积性的 2. 是否控制布局参数 addContentView() 有两个参数, 可以控制布局参数; 你指出的这个setContentView 没有接受布局参数, 默认使用MATC

谢栋的专栏 6375

模型实战(16)之StrongSort (OSNET)配合YOLOv5、v7、v8 实现多目标跟踪详解

StrongSort (OSNET)配合YOLOv5、v7、v8 实现多目标跟踪详解

yohnyang的博客 1770

构建自己的 Qt 插件系统

Qt 本身提供了插件相关的技术,但并没有提供一个通用的插件框架!倘若要开发一个较大的 GUI 应用程序,并希望使其可扩展,那么拥有这样一个插件框架无疑会带来很大的好处。

青春不老,奋斗不止! 2万+

android访问动态增加控件,android里,addContentView()动态增加view控件,并实现控件的顶部,中间,底部布局...

package com.Layout.main;import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.widget.Button;import android.widget.FrameLayout;import android.widget.TextView;...

weixin_30110807的博客 874

自动化Ai Agent全流程实现【设计+代码】

本文探讨了人工智能代理(AI代理)如何通过自动化复杂的业务流程来帮助企业提高效率和降低成本。AI代理具有适应性、智力、自主性和可扩展性等特点,能够处理非结构化信息、在定义参数范围内做出判断、协调多个系统或利益相关者,以及处理变量输入和异常。文章详细介绍了AI代理在文件处理、客户服务、人才招聘和财务运作等领域的应用,并提供了一个逐步实现发票处理自动化的案例。此外,文章还强调了实施AI代理自动化的优势,包括效率提升、成本降低、准确性和可扩展性的改进,并提出了实施最佳实践,如从高影响力流程开始、设计人机交互、优先

FeelTouch Labs 894

Android Render(二)WindowManagerImpl的addview跟viewGroup的addview有什么不同?

首先我们要知道ViewManager接口:package android.view;public interface ViewManager { //添加View 我们主要看在ViewGroup和WindowManagerImpl中的实现 public void addView(View view, ViewGroup.LayoutParams params); //更新Vi

Dawish的专栏 1026

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Android中setContentView、addContentView、inflate、LayoutInflater和findViewById()区别

Android中setContentView、addContentView、inflate、LayoutInflater和findViewById()区别:1. setContentView和addContentView的区别: (1).setContentView()会导致先前添加的组件被移除。 (2).addContentView() 不会移除先前添加

Android技术专栏 1472

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

addContentView跟setContentView的区别

addContentView和setContentView的区别 addContentView(View,LayoutParams)和setContentView(View)的区别.特别是在代码布局中有何区别。比如:    public void onCreate(Bundle savedInstanceState) {         super.onCreate(save

lisj0731的专栏 1312

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

研究了下Activity里的setContentView 和addContentView的区别

两者的区别: setContentView 是一次性的 每用一次这个方法 他都会把原来的布局删除后重新绘制出这个新布局 addContentView是积累性的 他是在原来布局上在叠加上一层新的布局 一层层叠上去 转载于:https://www.cnblogs.com/wzachenjian/archive/2012/10/26/2741969.html...

weixin_30455661的博客 169

Android Activity setContentView流程解析

Android Activity setContentView流程解析

qq_42700685的博客 460

android里,addContentView()动态增加view控件,并实现控件的顶部,中间,底部布局

[java] view plain copy "font-size:14px;"> package com.Layout.main;          import android.app.Activity;     import android.os.Bundle;     import android.view.Gravity;     import android.wid

tasty 8824

加载布局文件

Activity中: setContentView通用: inflatePreferenceFragment中: addPreferencesFromResource(R.xml.settings); Preference中: setLayoutResource(R.layout.item); Preference

王人冉的博客 583

View,androidui基础

1.1 View.getContext() Context context = imageView.getContext(); if (context instanceof Activity) { Activity activity = (Activity)context; // … } 从上面的代码举例中可以看到,从 imageView 控件里获取到 context ,转化为 Activity 来继续操作。这个 imageView 是来自 XML 布局中的一个控件,但在实际项目运行时有的手机并未走到转换类

m0_64383184的博客 310

Android界面生成流程:WindowManager和Window的关系

WindowManager和Window添加View的区别WindowManager中有个添加View的函数:public void addView(View view, ViewGroup.LayoutParams params)Window中有个添加View的函数:public void addContentView(View view, ViewGroup.LayoutParams param

扣子Coze大师班 1552

Activity添加新View

protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.write_annot);     SPSlate slate = new SPSlate(

u012422855的专栏 645

安卓动态加载view

安卓动态加载view

似霰的博客 2435

android之setContentView,addContentView(),Window,WindowManager,Dialog源码剖析。

setContenView: 任何一个Activity在onCreat()方法里要执行一次setContentView,而setContentView作用笔者总结为两大类 ONE:第一次setContentView时创建一个Decorview并关联到当前的PhoneWindows(Windows的具体实现类) TWO:从DecorView中找到合适的FrameLayout,并将我们传入的自

帅 4248
上一篇: eclipse 修改背景颜色
下一篇: android apk 打包
javalive09
博客等级 码龄16年 43粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值