首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AppCompatActivity.setContentView如何装载视图到AppCompatActivity

注意:AppCompatActivity.setContentView()与Activity.setContentView()主要的区别,Activity.setContentView直接将视图添加到Window...上,AppCompatActivity.setContentView()借助AppCompatActivity的Delegate代理类,将要显示的视图加入到代理层视图,代理层视图在添加到Window上;...目录 1.setContentView()调用流程 1)在AppCompatActivity定义了setContentView 2)getDelegate() 3)ensureSubDecor();...mWindow.getDecorView() 6)Window.setContentView() 2.整个添加在Activity中添加视图的流程如下 3.学习总结 ---- 大概可以了解如下内容: a.AppCompatActivity...1.setContentView()调用流程 Activity extends AppCompatActivity @Override protected void onCreate(Bundle savedInstanceState

46620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    源码分析 | AppCompatActivity-setContentView 之我大意了

    背景 故事是这样开始的 有一天,我发现自己写的布局没有 按照我的想法打印 带上了莫名其妙的开头 有一天,两个年轻人,不讲武德 非要告诉我这是 AppCompatActivity 的原因 我不信...好吧,我再从 背景 说一遍 正如上面所述,AppCompatActivity 有自己特定的容器 layout,如果在设计时,让它直接替代了Activity的默认根容器,就意味着 AppCompatActivity...所以正因为如此,AppCompatActivity 里的 DecorView 变量名叫做 mSubDecor,而我们基础 PhoneWindows 里的叫做 mDecor,再想想为什么AppCompatActivity...具体如下图所示: 检查层级我们就会发现,原来AppCompatActivity 是在原 Activity 布局层级上嵌套的,正如上面所描述,是不是有种ohhhh,就这啊的感觉。...哦呵呵呵,原来这里是对我们的默认的 View 进行了替换,这也就是为什么我们使用AppCompatActivity 打印出来的子 View 自带了前缀显示。

    33420

    Android开发中遇到的requestFeature() must be called before adding content异常

    关键原因在于,我在Android Studio 1.5里面新建的工程Activity默认是继承自AppCompatActivity类。...在那篇帖子里面提到了一些解决方法:(1)要么把基类从AppCompatActivity(或者ActionBarActivity)改成Activity。...这个类在现在的SDK中已经被废弃使用了,从源代码来看,ActionBarActivity现在就是继承自AppCompatActivity的一个空类,紧紧是为了向下兼容考虑。...那么,AppCompatActivity新在哪里呢?根据文档说明,AppCompatActivity是一个设计实现的更通用的类,内部使用了AppCompatDelegate作为逻辑实现核心。...有时你可能想在一个旧版本的Activity(既不是继承自ActionBarActivity又不是继承AppCompatActivity的类)中使用Material Design的组件。

    2.9K70

    【Kotlin 协程】协程并发安全问题 ( 使用 Atomic 并发安全类型 | 使用 Channel 通道 | 使用 Mutext 轻量级锁 | 使用 Semaphore 轻量级信号量 )

    发现最终累加不足 100000 ; package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity...协程不安全访问 问题 ; 代码示例 : package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity...kotlinx.coroutines.runBlocking import java.util.concurrent.atomic.AtomicInteger class MainActivity : AppCompatActivity...++ } } 代码示例 : package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity...++ } } 代码示例 : package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity

    61420

    【Kotlin 协程】协程异常处理 ① ( 根协程异常处理 | 自动传播异常 | 在协程体捕获异常 | 向用户暴露异常 | 在 await 处捕获异常 | 非根协程异常处理 | 异常传播特性 )

    在协程任务中抛出异常 , 查看异常的抛出点 ; package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity...在协程任务代码中可能抛出异常的代码处捕获异常 ; package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity...await 方法 , 则不会报异常 ; package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity...package kim.hsl.coroutine import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity...在子协程中产生的异常 , 会直接抛出 ; package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity

    71510

    Android Studio 3.4升级后的运行问题解决办法

    com.android.support:support-v4 androidx.legacy:legacy-support-v4:1.0.0 除了修改support库的路径,还要修改support控件的import导包代码,像AppCompatActivity...原来的import语句是下面这样的: import android.support.v7.app.AppCompatActivity; 启用AndroidX之后,导入AppCompatActivity的代码要改成下面这样...: import androidx.appcompat.app.AppCompatActivity; 详细的support控件的新旧对应关系见下表: 支持控件的旧包名 支持控件的旧包名 android.support.v4...android.support.v4.view.PagerTitleStrip androidx.viewpager.widget.PagerTitleStrip android.support.v7.app.AppCompatActivity...androidx.appcompat.app.AppCompatActivity android.support.v7.widget.Toolbar androidx.appcompat.widget.Toolbar

    9.7K30
    领券