`
zcbbupt
  • 浏览: 60163 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何阻止app_name在标题栏中闪现

阅读更多
常见自定义titlebar的方法是在values文件夹中新建一个我们自己的titlebar主题,例如:
values/custom_styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="TitlebarBackgroundStyle">
        <item name="android:background">@drawable/titlebar</item>
    </style>
    <style name="Theme.MyCustomTheme" parent="android:Theme"> 
        <item name="android:windowTitleBackgroundStyle">@style/TitlebarBackgroundStyle</item>
        <item name="android:windowTitleSize">45dp</item>
    </style>
</resources>


然后在manifest文件中为activity添加自定义主题,  
  <activity android:name=".MyTitleBar"
                  android:label="@string/app_name"
                  android:theme="@style/Theme.MyCustomTheme" //注意添加与此

这样就基本上完成了自定义titlebar。
声明无标题栏的方法更简单就是直接在activity中添加语句
requestWindowFeature(Window.FEATURE_NO_TITLE);


但是无论是通过上面代码定义无标题栏的activity,还是通过自定义主题重写titlebar,app首次载入时,系统总是会闪现一下app_name,然后才会运行我们定义的titlebar行为。这是一个令人诡异的行为。那么怎么去除app_name呢?

首先我们来看一下android运行app的基本原理:在系统运行一个application时,为了尽快响应用户,android首先会给用户呈现一个app的“preview”窗口,这个界面甚至早于应用的实际进程。这个预览“preview”窗口中的信息就是从app的manifest文件中获得的,所以一般app运行时总会显示一个具有app_name的titlebar,而不论我们在程序中如何定义我们的titlebar。所以解决的办法来了。

首先我们可以在app的manifest文件中,给我们的main activity添加无标题栏的主题
android:theme="@android:style/Theme.NoTitleBar"

声明我们的app根本不需要titlebar,这样app首次载入便不会闪现一下带有app_name的titlebar了。这比
requestWindowFeature(Window.FEATURE_NO_TITLE);
好使得多。但是问题来了,如果我还想要app呈现我自定义的标题栏怎么办呢?

解决的办法是在需要自定义titlebar的activity中通过
setTheme(android.R.style.Theme);

声明回标题栏。
需要注意的是setTheme(android.R.style.Theme);语句需要放在oncreat()语句的最前面否则会报错的。例如:
protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		setTheme(R.style.MyCustomTheme);//注意这一句的位置
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);		
		setContentView(R.layout.progressbar_test);
		getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,      // 注意顺序
                R.layout.title);

这样运行期间系统就会直接运行我们定义的标题栏,而不是先短暂的呈现app_name,再呈现我们的标题栏特征。

1
4
分享到:
评论

相关推荐

    主流app描述信息,包含package_name,app_name,app_info等基本信息

    主流app描述信息,包含package_name,app_name,app_info等基本信息

    MIT_App_Inventor_Tools_2.3.0_win_setup.zip

    这个名为"MIT_App_Inventor_Tools_2.3.0_win_setup.zip"的压缩包,包含了在Windows操作系统上安装MIT App Inventor所需的全部组件,特别是其Android模拟器,让用户无需物理设备就能进行APP的调试和测试。 1. **MIT ...

    Nordic51822 和 52832 的 APP_ERROR_CHECK(err_code)程序错误检查

    ### Nordic51822 和 52832 的 APP_ERROR_CHECK(err_code)程序错误检查 #### 一、概述 ...此外,建议在开发过程中不要简单地屏蔽`APP_ERROR_CHECK(err_code)`函数,而应该充分利用其功能来提高代码质量。

    c_app_window.zip_c_app_window.zip

    7. **c_app_window_ico.png**:这是窗口的图标文件,通常在程序启动时显示在任务栏和标题栏上。 8. **c_app_window.sln**:这是Visual Studio解决方案文件,用于组织和管理多个项目,方便开发和构建。 9. **c_app_...

    App_Browsers for ie11

    标题中的“App_Browsers for ie11”指的是一个专门针对Internet Explorer 11(简称IE11)浏览器的解决方案,该方案与ASP.NET框架有关。ASP.NET是Microsoft开发的一个用于构建Web应用程序的框架,它提供了丰富的...

    web-app_2_4.xsd

    web-app_2_4.xsd

    Xamarin开发Android不显示标题栏,隐藏title

    在Xamarin开发Android应用时,有时我们希望去除应用程序界面中的标题栏(title bar),以提供更简洁、沉浸式的用户体验。本教程将详细讲解如何在Xamarin.Android项目中实现这一目标,以及如何通过Visual Studio 2017...

    Web多语言切换及App_GlobalResources用法

    多语言切换的问题主要用到了App_GlobalResources文件夹和他下面的资源文件,以及Global.ascx文件 本程序中只做了中文和英文的切换,并且程序比较简单 根据自己在学习的过程中的一些经验将网上的代码简单的总结了下,...

    APP自定义标题栏-----并对标题栏中的控件实现监听和响应(源代码)

    在Android应用开发中,自定义标题栏是一种常见的需求,它能提供独特的用户界面风格和功能。本教程将详细讲解如何创建一个自定义标题栏,并在其中添加控件,以及实现这些控件的监听和响应事件。 首先,我们需要理解...

    .net C# ie10下 回发问题解决文件 app_browsers/IE.browser

    标题中的".net C# ie10下 回发问题解决文件 app_browsers/IE.browser"涉及了.NET框架、C#编程语言以及IE10浏览器的回发(PostBack)问题。回发是ASP.NET中一个重要的概念,它指的是用户在Web表单中进行操作后,页面...

    app_name

    - 多任务处理:用户可以在app_name中同时打开多个窗口,进行多任务处理,提高生产力。 - 高效协作:app_name支持共享文件和链接,团队成员可以实时编辑同一文档,促进协作效率。 - 安全保护:为了确保用户数据的...

    gst_appsrc.tar.gz_appsrc_gstreamer_gstreamer appsrc_gstreamer h2

    在本文中,我们将深入探讨GStreamer框架中的`appsrc`元素以及如何利用它来处理H264编码的图像。GStreamer是一个强大的、模块化的多媒体处理框架,它允许开发者构建复杂的多媒体管道,用于处理音频、视频和其他类型的...

    Android App 隐藏显示标题栏、状态栏、导航栏

    在Android应用开发中,隐藏或显示标题栏、状态栏以及导航栏是常见的需求,这有助于创建沉浸式用户体验或者根据设计需求调整界面布局。本篇将深入探讨如何在Android中实现这些功能。 首先,我们来讨论如何隐藏和显示...

    app_pythonflask_

    标题 "app_pythonflask_" 暗示了这个压缩包包含了一个使用Python Flask框架开发的应用程序。Flask是一个轻量级的Web服务器网关接口(WSGI)Web应用框架,由Armin Ronacher创建。它提供了基本的工具、库和约定来让...

    uni-app-自定义标题栏示例.zip

    在自定义标题栏的示例中,App.vue通常会包含自定义标题栏的模板结构,以及对应的样式和逻辑。 5. **static**:这是一个静态资源目录,可以存放图片、字体文件等。在自定义标题栏中,可能包含用于标题栏的图标或背景...

    FORM 开发中FOLDER(文件夹)的使用

    在模板例子中,我们可以修改 WHEN-NEW-FORM-INSTANCE 中文件夹数据块定义语句中的参数,确定对象名称(一般为 form 对象名称)、文件夹数据块名称、标题块名称、堆叠画布名称、窗口名称等。 例如,我们可以定义一个...

    A_APP通过Uri调用B_APP(Uri含两个应用包)demo最新版

    package_name=A_APP_PACKAGE&B_APP_PACKAGE=B_APP_PACKAGE"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); ``` 3. **处理Intent**:在B_APP的主Activity中,我们需要捕获并解析...

    Android仿百度外卖APP首页状态/标题栏效果(沉浸式状态栏)

    标题“Android仿百度外卖APP首页状态/标题栏效果(沉浸式状态栏)”提到的技术点,主要是如何在Android应用中实现类似百度外卖APP那样的顶部状态栏和标题栏一体化的视觉效果,让标题栏融入到系统状态栏中,形成无边界...

    Android 通用标题栏 简单封装实现

    在Android应用开发中,标题栏(Toolbar)是用户界面中的重要组成部分,它为用户提供应用程序的标识、导航功能以及操作选项。本教程将详细介绍如何通过简单的封装实现一个适用于各种场景的通用标题栏。参考链接:...

    Bootloader_App_DownloadTools

    本示例提供的BootLoader_App_DownloadTools包含以下三个主要部分: 1. **Boot2**:这是STM8的BootLoader源代码。它通常包括两个阶段:第一阶段是BootLoader的最小功能集,用于初始化基本的CPU寄存器、时钟和其他...

Global site tag (gtag.js) - Google Analytics