唠叨
目前在开发中使用的都是 appcompat-v7
下的各个兼容空间,当然也包括 AppCompatActivity
,当 activity
继承自 AppCompatActivity
的时候,使用的主题必须也是 Theme.AppCompat
开头的主题样式,不然报下面错误:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2365)
...
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity atandroid.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:359)
atandroid.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:328)
...
错误原因已经很明确了,说了使用AppCompatActivity
主题必须使用 Theme.AppCompat theme
;
好吧,我说多了,下面进入全屏实现:
动态实现
动态实现适合不管你使用的是普通的Activity
还是兼容包的AppCompatActivity
, 均可以使用;
比如:
public class WelActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 无 title
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// set view
setContentView(R.layout.activity_wel);
}
静态实现
说白了,就是在 AndroidManifest.xml 中配置的时候,配置 全屏 theme
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
但这只适合继承普通Activity的使用,上面已经说了,使用AppCompatActivity
主题必须使用 Theme.AppCompat theme
;
如果你使用了AppCompatActivity
就使用 动态实现的方式吧!