Android开发——去掉系统自带标题栏的几种方式
https://blog.csdn.net/qq_28585471/article/details/75991613
今天在练习自定义标题栏(Android初级开发(四)——补充3)的过程中遇到了隐藏系统自带标题栏的问题,现将几种去掉系统自带标题栏的方式做一总结。大体上可以分为两种方式,一种是修改xml文件(这种方式产生的效果作用于所有Activity),一种是编码实现(这种方式产生的效果只作用于当前Activity):
方法1-1:
1、查看清单文件AndroidManifest.xml中的theme
android:theme="@style/AppTheme"(系统默认的) 保持不变
2、在style.xml文件中修改AppTheme
方法1-2
在清单文件AndroidManifest.xml中修改theme,使用系统自带的无标题样式
实现无标题栏(但有系统自带的任务栏)
android:theme = "@android:style/Theme.NoTitleBar
实现全屏效果:
android:theme = "@android:style/Theme.NoTitleBar.Fullscreen"
!!!这时,可能会有朋友发现自己运行后出现错误,提示You need to use a Theme.AppCompat theme (or descendant) with this activity.这是因为Activity继承自了android.support.v7.app.AppCompatActivity,而不是android.app.Activity。具体的解决方法有两种:
1)如果不是强烈要求我们的Activity必须继承自AppCompatActivity,就直接让它继承Activity.如图
2)如果还是想继承自AppCompatActivity,那么根据提示来使用AppCompat的theme,即将AndroidManifest.xml文件中关于Activity的theme配置改为:
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
好了,运行程序,你会发现问题已经解决啦~!!
方式1-3
在清单文件AndroidManifest.xml中修改theme,使用自定义的无标题样式
android:theme = "@style/NoTitle"
在res/values/styles.xml文件中,加入如下代码
<style name="NoTitle">
<item name="android:windowNoTitle">true</item>
</style>
方法2
在程序中编写代码进行设置,只需在onCreate()方法中加入如下代码:
实现无标题栏(但有系统自带的任务栏)
requestWindowFeature(Window.FEATURE_NO_TITLE);
实现全屏效果
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
我在参考其他小伙伴的隐藏标题栏相关资料时,发现很多人都喜欢在文章最后附上这个Android系统自带样式罗列表,本来我是不打算仿照他们的这个做法的,但是想着还是自己敲一遍加深印象,抱着这个目的,下面请见Android系统自带样式:)
附:Android系统自带样式
android:theme = "@android:style/Theme.Dialog" 将一个Activity显示为对话框模式
android:theme = "@android:style/Theme.NoTitleBar" 不显示应用程序标题栏
android:theme = "@android:style/Theme.NoTitleBar.Fullscreen" 不显示应用程序标题栏,并全屏
android:theme = "Theme.Light" 背景为白色
andorid:theme = "Theme.Light.NoTitleBar" 白色背景并无标题栏
android:theme = "Theme.Black" 背景为黑色
android:theme = "Theme.Black.NoTitleBar" 黑色背景并无标题栏
android:theme = "Theme.Black.NoTitleBar.Fullscreen" 黑色背景,无标题栏,全屏
android:theme = "Theme.Wallpaper" 用系统桌面为应用程序背景
android:theme = "Theme.Wallpaper.NoTitleBar" 用系统桌面为应用程序背景,且无标题栏
android:theme = "Theme.Wallpaper.NoTitleBar.Fullscreen" 用系统桌面为应用程序背景,无标题栏,全屏
android:theme = "Translucent" 透明背景
android:theme = "Theme.Translucent.NoTitleBar" 透明背景并无标题
android:theme = "Theme.Translucent.NoTitleBar.Fullscreen" 透明背景并无标题,全屏
android:theme = "Theme.Panel" 面板风格显示
android:theme = "Theme.Light.Panel" 平板风格显示
Android开发——去掉系统自带标题栏的几种方式的更多相关文章
- android开发中系统自带语音模块的使用
android开发中系统自带语音模块的使用需求:项目中需要添加语音搜索模块,增加用户体验解决过程:在网上搜到语音搜索例子,参考网上代码,加入到了自己的项目,完成产品要求.这个问题很好解决,网上能找到很 ...
- Android开发入门——Button绑定监听事件三种方式
import android.app.Activity; import android.os.Bundle;import android.view.View;import android.widget ...
- Android manifest之系统自带的permission
Android manifest之系统自带的permission 本文描述Android系统自带的permission.点击查看:“关于permission的原始定义和说明”.点击查看:“Androi ...
- 基于jeesite+android开发 电子商务系统免费教程
下载地址: jeesite免费教程 基于jeesite+android开发 电子商务系统免费教程 基于jeesite+android开发 电子商务系统免费教程 这个教程已经录制完很久了,一直没有公开, ...
- 在Android开发中,定时器一般有以下3种实现方法
在Android开发中,定时器一般有以下3种实现方法: 原文地址http://www.360doc.com/content/12/0619/13/87000_219180978.shtml 一.采用H ...
- Android手机上监听短信的两种方式
Android手机上监听短信有两种方式: 1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. AndroidManifest.xml: ...
- Android中EditText显示明文与密文的两种方式
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录输入框显示.隐藏密码的简单布局以及实现方式. 效果图 代码分析 方式一 /**方式一:*/ private void sh ...
- iOS 开发之 - 关闭键盘 退出键盘 的5种方式
iOS 开发之 - 关闭键盘 退出键盘 的5种方式 1.点击编辑区以外的地方(UIView) 2.点击编辑区域以外的地方(UIControl) 3.使用制作收起键盘的按钮 4.使用判断输入字元 5 ...
- Ubuntu系统---编译opencv程序的几种方式g++、Makefile、Cmake
Ubuntu系统---编译opencv程序的几种方式g++.Makefile.Cmake 先建立一个工程(一个文件夹),写好xxx.cpp文件,可以是多个: //----------opencv.cp ...
随机推荐
- caffe_ssd学习-用自己的数据做训练
几乎没用过linux操作系统,不懂shell编程,linux下shell+windows下UltraEdit勉勉强强生成了train.txt和val.txt期间各种错误辛酸不表,照着examples/ ...
- 实现Winform 跨线程安全访问UI控件
在多线程操作WinForm窗体上的控件时,出现“线程间操作无效:从不是创建控件XXXX的线程访问它”,那是因为默认情况下,在Windows应用程序中,.NET Framework不允许在一个线程中直接 ...
- .net core创建项目(指令方式)
所谓的指令创建项目,就是不用再已安装的VS2015的环境下或者VS Core下创建,直接通过DOS指令创建也是OK的. 1.找到你所准备保存项目的项目文件夹(你也可以到某个目录用指令创建项目文件夹[ ...
- 苹果手机显示分享链接的方法html页面
function onBridgeReady(){ WeixinJSBridge.call('showOptionMenu'); } if (typeof WeixinJSBridge == &quo ...
- linux下VLAN设置
1. 安装vlan(vconfig)和加载8021q模块 [root@test0001~]#yum install vconfig [root@test0001~]#modprobe 8021q [r ...
- 文件IO流
//字节流读写含有中文的文本文件会出现问题,我在实践中居然没有检验出该问题,新人小菜,希望大家能指出: import java.io.FileInputStream; import java.io.F ...
- window.open()居中显示
function openwindow(url,name,iWidth,iHeight){ // url 转向网页的地址 // name 网页名称,可为空 // iWidth 弹出窗口的宽度 // i ...
- MySQL 跨库主从
一个线上需求,要求主从两库的数据库名字不一样, 在从库上做如下配置: replicate-rewrite-db=DB_1->DB_1_online replicate-rewrite-db=DB ...
- PHP 支付类库, cURL开源HTTP类库
未做任何测试 支付类库地址:http://doc.yurunsoft.com/PaySDK cURL开源HTTP类库地址:http://doc.yurunsoft.com/YurunHttp/1
- fjwc2019 D1T2 原样输出(后缀自动机+dp)
#179. 「2019冬令营提高组」原样输出 暴力对每个串建后缀自动机,然后暴力枚举每个自动机的子串.可以拿到部分分. 然鹅我们可以把每个后缀自动机连起来. 我们知道,后缀自动机是用最少的点(空间)表 ...