`
endf
  • 浏览: 5782 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

Android setTheme无效的问题

阅读更多
在SDK中介绍setTheme需要在setContentView之前使用,但是在实际使用中发现只有在super.onCreate调用之前调用方可有效,也许是2.2的一个问题。可以参照
http://code.google.com/p/android/issues/detail?id=4394
这一部分内容
其中下边这个人的回答很有参考价值

**************************************
Hey Christian,

if you just need a dynamic (same activity to be either a dialog or a full screen
activity) you could try the following approach.

AndroidManifest.xml
<activity android:name=".ShowSettingsActivity"
  ...
  android:theme="@android:style/Theme.Dialog">
  ...

ShowSettingsActivity.java
@Override public void setTheme(int resid) {
   boolean isFullScreen = ... ; // get from configuration
   super.setTheme(isFullScreen ? android.R.style.Theme : resid);
}

Now you just need to define isFullScreen and restart activity. This approach works
with my application (market://search?q=pname:com.bwx.bequick). Hope this helps.

Best Regards,
Sergey

***************************************
上边这个方法中有一个关键的参数就是isFullScreen这个值,这个值需要在onCreate调用之前就设置好方可有效,因为在activity framework中会根据androidmanifest.xml文件的theme是否存在进行第一次设置,而后就没有办法改变了(这应该是一个bug)。

第一次些Android的blog~
分享到:
评论

相关推荐

    android主题切换demo

    设置theme的方式实现android主题切换,提供一个实现思路。

    android 主题(Theme)实现

    android 主题(Theme)实现 setTheme() android2.2

    Android代码-Android夜间模式

    Android夜间模式,通过Theme实现(attrs.xml styles.xml Activity.setTheme()) 效果展示: 如何添加 Gradle添加: 1.在Project的build.gradle中添加仓库地址 allprojects { repositories { ... maven { url ...

    在Android应用中添加修改主题功能

    在Android应用中添加修改主题功能 原文地址:http://blog.csdn.net/yangzl2008/article/details/22694327

    Android实现日夜间模式的深入理解

     2、设置 Android Support Library 中的 UiMode 来支持日间/夜间模式的切换;  3、通过资源 id 映射,回调自定义 ThemeChangeListener 接口来处理日间/夜间模式的切换。 一、使用 setTheme 方法 我们先来看看...

    Android应用动态修改主题的方法示例

    如下所示,在Activity中使用setTheme setTheme(R.style.MyTheme1); 2.调用API的时机 需要在super.onCreate(savedInstanceState)之前调用setTheme 3.重新设置主题 要重新设置主题,则需要结束Activity,重新启动才...

    Android(经典实例).doc

    Android(经典实例).doc 安装了SDK后,直接生成一个Android Project,一句代码不用写,就能跑出一个最简单的HelloWorld例程。... setTheme(android.R.style.Theme_Dark); setContentView(R.layout.main); }

    透明与窗体的设置

    PS1:如果只是将Acticity显示为默认的Dialog, 跳过第一步,只需要在manifest文中增加属性:android:theme="@android:style/Theme.Dialog"或者在程序中增加setTheme(android.R.style.Theme_Dialog). PS2:其他创建...

    SkinChangeDemo.zip

    Android 主题换肤案例代码,通过设置 Android style 配合 setTheme() 方法,快速实现 App 的主题切换效果。

    Android实用的代码片段 常用代码总结

    OnCreate中不设Layout this.setTheme(R.style.Theme_Transparent); 以下是Theme_Transparent的定义(注意transparent_bg是一副透明的图片) 3:在屏幕元素中设置句柄 使用Activity.findViewById来取得

    react-native-segmented-control::party_popper:React Native Segmented Control:party_popper:适用于iOS和Android的带有深色模式的:new_moon_face:

    React本机分段控制 :anchor: 安装 yarn add rn-segmented-control # or npm i rn-segmented-control :clockwise_vertical_arrows: 依存关系 npm i prop-types ... const [ theme , setTheme ] = React . u

    pattern-lock-js:使用画布的Web模式锁库

    PatternLockJS Web的模式锁定库。 安装 使用以下方法安装库 yarn add @phenax/pattern-lock-js 导入库 import PatternLock from '@phenax/pattern-lock-js' ; 开始吧 const lock = PatternLock ( { ... setTheme ( {

    Edgeless-Project:Edgeless PE Project的开源存储库

    Clone此仓库,然后将Core部分的文件夹覆盖复制到您的PE项目文件夹中,然后进行问题检修工作 我们不建议缺乏Windows系统和WinPE基础知识的使用者进行此工作 此外,您的PE需要添加PECMD支持并完成构建,我们推荐使用...

    ebook 源码

    public class AndroidUtils { public static DisplayMetrics getDisplayMetrics(Context cx) { DisplayMetrics dm = cx.getApplicationContext().getResources().getDisplayMetrics(); return dm; } public ...

    xmljava系统源码-ScoopsDemo:多主题风格代码demo,实时更新,欢迎starfork

     Scoops是一个android应用库,主要解决的是多主题实现方案。通过配置多个R.style.Theme ,代码进行动态设置主题,重启当前界面实现。 原理分析  主要通过设置主题(存储设置值), 重启activity,通过setTheme方式...

    bmap-helper:百度地图开源库,支持自定义弹窗、全屏等功能

    bmap-helper预览主要功能有:setTheme 设置主题setMapInfo 弹框控件setZoomControl 地图缩放控件(含放大、缩小)setZoomInControl 地图放大控件setZoomOutControl 地图缩小控件setFullControl 地图全屏控件...

    图表:百度ECharts2库的R接口

    v 0.2|百度Echarts 2的R接口是由百度公司开发的用于交互式图表的开源... 一个hello world示例如下: echartr( iris , Sepal.Length , Sepal.Width , Species ) % &gt; % setTheme( ' macarons ' ) 最初的recharts包由Ya

    观点:ERD编辑器

    维德ERD编辑器ERD生成器SQL DDL发电机代码可视化SQL DDL导入文件相依性 -可观察-Web标准界面 -CSS封装 -... setTheme ( theme : Theme ) : void ; setKeymap ( keymap : Keymap ) : void ; setUser ( user : User ) :

    rex-state:将钩子转换为React组件之间的共享状态

    安装yarn add rex-state# ornpm i rex-state 用法考虑以下挂钩,可让您在亮和暗模式之间切换主题const useThemeMode = ( initialTheme = 'light' ) =&gt; { const [ theme , setTheme ] = useState ( initialTheme ) ;...

    ep_themes:Etherpad的主题和样式插件

    有关如何执行此操作的示例在themes.js中,应该可以轻松进行测试themes.setTheme('#000', '#07C201', '#07C201', '#07C201', '#07C201', '#000', '#000');// replace with your colors :)安装通过Etherpad中的/ ...

Global site tag (gtag.js) - Google Analytics