位置: 编程技术 - 正文

关于使用RequestWindowFeature为啥一定要在setContentView之前调用

编辑:rootadmin

推荐整理分享关于使用RequestWindowFeature为啥一定要在setContentView之前调用,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

网上关于RequestWindowFeature()的用法有很多,却难找一篇解释清楚的文章供大家了解,下面这是我遇到这个问题并且得出的一点结论供大家参考。

Activity的RequestWindowFeature()实际上走的是PhoneWIndow的requestFeature(),在PhoneWIndow的requestFeature()中有个前提条件,成员属性mContentParent不能为非null,这是构建窗体的view,即在为窗体设置属性时,还不能构建窗体。如下:

@Override public boolean requestFeature(int featureId) { if (mContentParent != null) { throw new AndroidRuntimeException("requestFeature() must be called before adding content"); }

.....

return super.requestFeature(featureId); }

但是在activity中使用setContentView()时,实际上走的是phonewindow的setContentView,根据代码我们看到

关于使用RequestWindowFeature为啥一定要在setContentView之前调用

@Override

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

}

它会首先判断mContentParent 是否为null,如果为null,进入installDecor();

private void installDecor() {

......

if (mContentParent == null) { mContentParent = generateLayout(mDecor); mTitleView = (TextView)findViewById(com.android.internal.R.id.title); if (mTitleView != null) { if ((getLocalFeatures() & (1 << FEATURE_NO_TITLE)) != 0) { View titleContainer = findViewById(com.android.internal.R.id.title_container); if (titleContainer != null) { titleContainer.setVisibility(View.GONE); } else { mTitleView.setVisibility(View.GONE); } if (mContentParent instanceof FrameLayout) { ((FrameLayout)mContentParent).setForeground(null); } } else { mTitleView.setText(mTitle); } }

.....

}

这是installDecor方法的部分代码,从中我们可以看到,它会对mContentParent 进行初始化,从而赋予相应的&#;,这就是RequestWindowFeature为啥一定要在setContentView之前调用就会抛此类异常

Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content- ::.: E/AndroidRuntime(): at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:)- ::.: E/AndroidRuntime(): at android.app.Activity.requestWindowFeature(Activity.java:)- ::.: E/AndroidRuntime(): at com.solar.BaseActivity.onCreate(BaseActivity.java:)- ::.: E/AndroidRuntime(): at com.solar.SetupInfoActivity.onCreate(SetupInfoActivity.java:)- ::.: E/AndroidRuntime(): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:)- ::.: E/AndroidRuntime(): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:)d

Android 性能测试实践(二) 实时监控工具 转载地址:

Android开发之时间刻度盘 一、最近的一个项目中有遇到时间刻度盘的需求,在网上没找到合适的,于是自己就花点时间实现了,现在分享出来,效果如下图:在介绍如何实现之

Android面试题 1.Android序列化,其中的差异。Android自定义对象可序列化有两个选择一个是Serializable和Parcelable;差异:1、在使用内存的时候,Parcelable比Serializable性能高

标签: 关于使用RequestWindowFeature为啥一定要在setContentView之前调用

本文链接地址:https://www.jiuchutong.com/biancheng/382298.html 转载请保留说明!

上一篇:自定义ListView使用Volley获取数据(android自定义listview)

下一篇:Android 性能测试实践(二) 实时监控工具(安卓app性能测试)

  • 小规模纳税人销售额超过500万
  • 企业给员工购买社保的规定
  • 金税财务是干什么的
  • 本月发生费用未支付会计处理
  • 税务规定先收款后开票,合同约定先收票再付款
  • 工程保险谁负责
  • 员工出差的餐补计入什么科目
  • 会计中预付款包括
  • 物业公司代收代付水电费会计分录
  • 税务需要申报吗
  • 国税能代开什么费用的发票?
  • 景区门票入什么费用
  • 《减免所得税优惠明细表》
  • 抵税必须要有发票
  • 预提费用对应
  • 审计报告格式与范文怎么写?
  • 预付租金是什么
  • 资产处置收益计入哪个会计科目
  • 个人银行卡流水达到多少要交税
  • 如何代开外籍人员个人所得税完税凭证?
  • 收取专利使用费怎么支出
  • 领用原材料用于职工福利的税费怎么算
  • 顶账物品都有哪些
  • 工程用的叉车计提折旧记到什么科目?
  • php数组可以使用哪些键名
  • php数组函数输出《咏雪》里有多少"片"字
  • 修改插入点闪烁光标的宽度
  • PHP:pg_lo_export()的用法_PostgreSQL函数
  • 其他应收款的会计处理
  • 印花税减免一半
  • formdata方法
  • 资产负债表日后调整事项
  • 政府无偿划转股权 要做可行性研究
  • python中strftime用法
  • js中同步如何理解
  • discuzcms
  • 建筑业委托加工合同范本
  • 税费计提多了怎么冲减
  • 固定资产降低
  • 公司注销前欠客户钱
  • 兼职老师工资小时多少钱
  • 合并抵消分录影响母公司总分类账吗
  • 增值税专用发票几个点
  • 老板自己的钱给公司
  • 现金支票存根金额怎么写
  • 不签订购销合同的后果
  • 已抵扣的进项税额转出会计分录账务处理
  • 上月计提少了怎么办
  • 收到个人所得税手续费返还如何做账
  • 财务独立核算的条件
  • 计提工会经费的工资总额包括五险一金吗
  • 学校固定资产账记法
  • 以前年度调增的收入下一年如何申报
  • win8怎么设置指纹
  • 如何抛弃七情六欲
  • 在64位的Ubuntu系统上安装32位的WPS的方法
  • 开机越来越慢会不会是硬件的问题
  • windows下键盘不能用
  • win7怎么添加播放设备
  • win7计算机快捷方式不见了
  • xp开始菜单栏怎么还原
  • 电脑蓝屏0X0000007B
  • win7移动硬盘写保护了怎么解除
  • windows8图片
  • win7系统如何给文件夹加密
  • javascript数据结构与算法项目计算找零
  • python如何进行线程操作
  • Unity3D游戏开发(第2版)pdf
  • js解析机制
  • python,字符串
  • jq filter过滤
  • 如何用python创建数据集
  • javascript整数类型
  • thinkphp withjoin
  • 重庆国家税务局发票查询
  • 河北地方税务局网
  • 欠税务局税款的后果
  • 高级人民法院党组书记级别
  • 税务申报时显示未抄报税?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设