根据官方文档的描述,要想显示TitleBar需要在config.xml中做如下设置(默认是false):
引用
<preference name="ShowTitle" value="true"/>
http://cordova.apache.org/docs/en/3.4.0/guide_platforms_android_config.md.html#Android%20Configuration
但是把这个值设置成true的时候,Android应用也无法显示TitleBar!
查看Android模板代码的AndroidManifest.xml文件,发现在第36行有如下设置:
引用
android:theme="@android:style/Theme.Black.NoTitleBar"
https://github.com/apache/cordova-android/blob/3.4.x/bin/templates/project/AndroidManifest.xml
意味着默认是不显示TitleBar的,和文档说明吻合,也就是说代码中应该有能显示出来TitleBar的地方。
继续看Cordova中唯一的Activity,在第225-228行可以看出,如果没有设置ShowTitle或者设置成了false的话,会隐藏TitleBar。
但是没有说如果为true的时候应该把TitleBar再显示出来。
if(!this.getBooleanProperty("ShowTitle", false))
{
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
}
https://github.com/apache/cordova-android/blob/3.4.x/framework/src/org/apache/cordova/CordovaActivity.java
查看了一下AndroidManifest.xml的修改历史记录,在“Sep 18, 2012”,为了对应
CB-1126(改善Splashscreen的显示)在AndroidManifest.xml中添加了NoTitleBar的theme。但是同时可以看出修改记录没有对应何时能把TitleBar显示出来。Fix Version是2.2.0。不过显示TitleBar在Hybrid app中已经不是很经常用到的功能了。
https://github.com/apache/cordova-android/commit/451688a12e1eb43303601be357d9c40fd4cf1ce5
修改方法:
if(!this.getBooleanProperty("ShowTitle", false)) {
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
} else {
setTheme(android.R.style.Theme_Black);
}
首先修改CordovaActivity.java,添加当“ShowTitle”被设置成true的时候,显示TitleBar。
但是Android4.0开始UI有大幅的变化,TitleBar也不是看到的这个样子,所以还需要要特殊处理一下:
if(!this.getBooleanProperty("ShowTitle", false)) {
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
} else {
if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
setTheme(android.R.style.Theme_Black);
} else {
setTheme(android.R.style.Theme_DeviceDefault);
}
}
http://developer.android.com/reference/android/R.style.html#Theme_DeviceDefault
TitleBar显示出来了,还需要考虑是否会对SplashScreen有影响,查看CordovaActivity的showSplashScreen()方法,发现事实它是new了个Dialog并设置了Theme_Translucent_NoTitleBar的,所以不用考虑会影响SplashScreen是否会显示TitleBar了。
同时TitleBar还牵扯到ActionBar的问题,Cordova里也没有对应。
参考:
http://stackoverflow.com/questions/22038657/show-actionbar-in-android-phonegap-project
- 大小: 2.1 KB
- 大小: 8 KB
- 大小: 9 KB
- 大小: 31.5 KB
- 大小: 10.9 KB
- 大小: 11.6 KB
分享到:
相关推荐
cordova android 自动更新update 插件 ,包含使用说明!下载后,利用cordova命令安装!
> 此实例代码为 Android Studio 原生项目集成 Cordova 插件演示,而非通过 Cordova 直接编译,方便您在现有 Android Studio 项目中集成 Cordova 进行 H5 混合开发。 为了结构清晰及易维护性,项目分三个 Module ,...
cordova phoneGap android
项目中包含很多案例如:使用cordova 使用sqlite存储、cordova使用camera、cordova使用百度地图定位、cordova使用file、cordova使用dialog、cordova使用androidToast等等。另外里面有一个使用的简单说明。
Cordova / PhoneGap 开发 1. 基于HTML,CSS和JavaScript的移动开发框架 2. 跨平台快速开发:能够支持iPhone,Android,Palm,Symbian, WP7, WP8, Bada和Blackberry 3. 核心功能:包括地理定位,加速器,联系人,声音...
ionic cordova android安装教程
按照官网,看,但是很乱,自己整理了一下,还要镜像,无语了吧,导入...4.接着,大陆客户按照官网安装,不能成功” 安装cordova:npm install-g cordova” 5.搜索大陆论坛,不能解决,请教刘正洋老师,解答是:国内镜像
//回调函数中的data表示从原生activity传回来的数据,已处理为json对象 alert(data.id "::" data.name); }); 原生安卓activity接收参数和回传参数简单示例 public class MyActivity extends Activity { ...
总结了android studio 搭建cordova开发环境的步骤,以及搭建过程中遇到的问题和解决方法。
cordova Android版本的内附案例,可以用html5写Android的apk.
phonegap cordova 最简单的android应用例子,直接执行cordova run android 进行编译后可以在手机上浏览效果
cordova-android保存图片插件,不知道为何不适用ios,仅供参考
高版本的cordova不再提供jar包,手动编译亲测可用,win10系统,Eclipse-23.0.2,android-26,带常用插件。详细请见《基于win10的Android + Eclipse-8.0.2 + PhoneGap-8.0.0 环境配置》...
android 程序集成 cordova使用方法
cordova 配置插件很是麻烦,整了一个scan demo ,html 端逻辑在index.js 里面写的 ,android 端逻辑,好懂
cordova-android-3.6.4.tgz - TAR+GZIP 压缩文件, 解包大小为 3,618,518 字节
Cordova-Android源码分析系列二(.docx#资源达人分享计划#
该资源是我学习使用Cordova自定义插件的完整源码,里面包含创建cordova项目,自定义插件等
Cordova 的 Android TV 插件 ... 注意:对于 Ouya 和 Android TV,该插件专门设置为将您的应用列为游戏,如果您希望它作为应用显示在 Ouya 和 Android TV 上,则必须替换我的 plugin.xml 中的部分文件显示“tv.
cordova-android-3.5.0