解决办法:
自定义主题
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
Android studio创建新项目后Activity默认继承的是
AppCompat
Activity。
在使用自己创建的style的时候,如果没有设置parent="xxx",其中xxx是
appcompat
相关的属性,那么在运行的时候就会报错。所以要在使用的style里面继承相关属性:例如:
那么在我们在activity继承自
AppCompat
Activity的前提下,怎么去设置
全屏
呢?
Style:风格,它是一系列Attr的集合用以定义一个View的样式,比如height、width、padding等;
Theme
:
主题
,它与Style作用一样,不同于Style作用于个一个单独View,而它是作用于Activity上或是整个应用,并具有向下的覆盖特性
Theme
的定义
Theme
的定义基本是一
.
.
.
<style name="App
Theme
" parent="
Theme
.
AppCompat
.
Light
.
DarkActionBar">
<!-- Customize your
theme
here
.
-->
<item name="colorPrimary">@color/
.
.
.
Theme
.
AppCompat
Theme
.
AppCompat
是一个兼容性
主题
,用于确保应用在不同版本的 Android 系统上都能保持一致的外观和行为。它提供了 Material Design 的样式,并且兼容 Android 2
.
1(API 级别 7)及以上版本。
Theme
.
AppCompat
:基本的
AppCompat
主题
,提供 Material Design 的默认样式。
Theme
.
AppCompat
.
Light:浅色背景的
AppCompat
主题
。
Theme
.
AppCompat
.
Da
activity有一个属性@android:style/
Theme
.
Translucent,但是
AppCompat
Activity是没有的,那么这个应该怎么设置透明
主题
呢,其实也很简单
先自定义一个style
<style name="MyTranslucent
Theme
" parent="
Theme
.
AppCompat
.
Light
.
NoActionBar">
<item name="android:windowNoTitle">true</item>
.
.
.
场景:将activity配置成透明的时候出现这个问题
原因:我的activity是继承
appcompat
activity的,而
appcompat
activity不支持这个配置
处理方式1:将你的activity继承改成activity
当然这种方式很多人不愿意这样,毕竟已经使用了
appcompat
activity再换过来肯定不理想的
处理方式二:自定义style
第一步,在style里面
.
.
.
无论Activity继承自Activity还是
AppCompat
Activity
只需要在styles中的修改
Theme
<style name="App
Theme
" parent="
Theme
.
AppCompat
.
Light
.
NoActionBar">
<!-- Customize your
theme
here
.
-->
.
.
.
有关
AppCompat
Activity透明化处理的失败探索历程
http://blog
.
csdn
.
net/lq2007lq/article/details/52606797
当Activity继承于
AppCompat
Activity时,只能使用
Theme
.
AppCompat
下的
主题
。而这些
主题
并没有Translucent
.
提示错误:
java
.
lang
.
Illeg
在Android系统4
.
4以前,状态栏的背景色和字体颜色都是不能改变的。但是4
.
4以后Google增加了改变状态栏背景透明的方法,可以通过两种方式来设置。
直接在Activity中设置Window属性:
@Override
protected void onCreate(Bundle savedInstanceState) {
if (Build
.
VERSION
.
SDK_
.
.
.
<style name="transparent_activity" parent="
Theme
.
AppCompat
.
Dialog">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="android:windowNoTitle">true</item>
最近开发android 用studio。与之前开发不同,新建立的activity都是继承于
AppCompat
Activity的。
最近要开发个Splash 页面,要
全屏
慕显示,于是采用早先的写法:
this
.
requestWindowFeature(Window
.
FEATURE_NO_TITLE);
getWindow()
.
setFlags(WindowMan
使用Android Studio创建Activity的时候,默认创建的Activity是继承自
AppCompat
Activity的,这个类来源于v7包,是一种可以向下兼容的Activity。
但同时也带来了一些小问题,常用的设置Acitivity无标题
全屏
显示的方法不管用了,那么如何解决呢?
网上已经有很多关于这个问题的解决方案,如果你试了都没有解决,那么请往下看。首先说下网上说的解决方案:方案一:在AndroidManifest
.
xml中,为需要进行
全屏
显示的activity添加如下
主题
:android:
theme
="@android:style/
Theme
.
NoTitleBar
.
Fullscreen"
注意:如果使用的是AppCompact
主题
的话,要么将自己的activi
.
.
.