根据官方文档的描述,要想显示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插件的工作原理是至关重要的。Cordova插件是连接Web层(基于WebView...
8. **运行与调试**:使用`cordova run android`命令在模拟器或连接的设备上运行应用,或者在Android Studio中直接运行调试。 **关于Cordova和WebView的关联** Cordova的核心就是WebView,但它不仅仅是简单的...
> 此实例代码为 Android Studio 原生项目集成 Cordova 插件演示,而非通过 Cordova 直接编译,方便您在现有 Android Studio 项目中集成 Cordova 进行 H5 混合开发。 为了结构清晰及易维护性,项目分三个 Module ,...
CordovaAndroid-3.6.4 版本包含了以下关键知识点: 1. **Cordova 框架**:Cordova 提供了一组设备相关的 API,让开发者可以访问手机硬件功能,如相机、地理定位、通知等。它通过WebView(在 Android 上是 ...
以下是一个详细的步骤指南,涵盖了如何在Android Studio中配置Cordova环境以及可能遇到的问题及其解决方案。 首先,确保你已经安装了以下基础软件: 1. Java Development Kit (JDK):Cordova和Android Studio都需要...
3. **添加平台**:在项目目录中,运行`cordova platform add android`命令,将Android平台添加到项目中。 4. **构建与运行**:通过`cordova build android`命令编译项目,然后使用`cordova run android`将应用部署...
Cordova Android 3.6.4 是该框架针对 Android 平台的一个特定版本,它在2014年发布,是 Cordova 3.x 系列中的一个重要里程碑。这个版本提供了对当时 Android 系统的广泛支持,并且为开发者提供了与原生 Android 功能...
在Android开发中,Cordova是一种流行的开源框架,用于构建混合移动应用。它允许开发者使用Web技术(如HTML、CSS和JavaScript)来创建原生应用程序,同时利用设备的APIs。"Fragment"是Android SDK中的一个关键组件,...
在本示例中,我们关注的是如何在Cordova项目中实现“扫一扫”功能,这通常涉及到条形码或二维码扫描。 在Cordova中添加特定功能通常通过安装插件来实现,对于“扫一扫”功能,我们需要安装一个支持扫描的插件。常用...
在本场景中,我们关注的是一个特定的Cordova插件,即"cordova-android保存图片插件"。这个插件主要用于Android平台,遗憾的是,根据描述,它似乎并不适用于iOS。下面我们将深入探讨这个插件的功能、工作原理以及如何...
本文将深入探讨"Android混合开发自定义Cordova插件"这一主题,基于提供的资源,我们将理解如何创建Cordova项目,以及如何自定义插件以扩展其功能。 1. **Cordova基础** - Cordova的核心概念是WebView,它是一个...
在这个“phonegap/cordova案例android版本”中,我们将深入探讨这两个工具如何协同工作,以及如何在Android平台上创建一个简单的应用。 PhoneGap是由Adobe维护的一个开放源代码项目,它基于Cordova,并提供了额外的...
CordovaWebView 类继承了 Android 的 WebView 类,是 Cordova 框架中一个非常重要的组件。该类共有 1000 多行代码,包含了很多重要的成员变量,如 PluginManager、BroadcastReceiver、CordovaInterface、...
项目中包含很多案例如:使用cordova 使用sqlite存储、cordova使用camera、cordova使用百度地图定位、cordova使用file、cordova使用dialog、cordova使用androidToast等等。另外里面有一个使用的简单说明。
按照官网,看,但是很乱,自己整理了一下,还要镜像,无语了吧,导入...4.接着,大陆客户按照官网安装,不能成功” 安装cordova:npm install-g cordova” 5.搜索大陆论坛,不能解决,请教刘正洋老师,解答是:国内镜像
在Cordova的应用中,有时我们需要调用原生的Android Activity来实现特定功能,例如访问设备硬件或利用原生库。本篇文章将详细介绍如何在Cordova中进行原生Activity的跳转,以及`HjkPlugin`可能涉及的相关知识点。 ...
//回调函数中的data表示从原生activity传回来的数据,已处理为json对象 alert(data.id "::" data.name); }); 原生安卓activity接收参数和回传参数简单示例 public class MyActivity extends Activity { ...
3. **兼容性**:确保插件在不同版本的 Android 平台上都能正常工作,可能需要处理 API 兼容性问题。 通过以上步骤,你已经成功创建了一个简单的 Cordova 自定义插件,它能在 Android 平台上接收 JavaScript 调用,...
在3.5.0版本中,开发者可能需要使用`cordova platform add android`命令来添加Android平台,并用`cordova build`或`cordova run`来编译和部署应用。 5. **配置文件**:Cordova项目通常包含一个名为`config.xml`的...
当你在应用中调用一个特定的JavaScript函数时,Cordova会处理这个调用,将其转发给相应的Android API,并将结果返回给JavaScript。这种方式使得开发者可以用他们熟悉的Web技术来开发跨平台的应用,同时也能利用到...