我正在使用主题从可绘制对象制作启动屏幕。但是,初始屏幕的可绘制对象显示在系统栏的后面,如下所示。
这是我的启动画面可绘制splash_screen.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/slighty_red" />
<item>
<bitmap
android:src="@drawable/test_icon"
android:gravity="center_horizontal|bottom" />
</item>
</layer-list>
这是我的启动画面主题:
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="android:fitsSystemWindows">true</item> <!--Tried this but it doesn't work-->
</style>
然后我将此主题应用于清单中的我的启动活动:
<activity
android:name=".SplashActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我已经尝试过在启动主题中将fitsSystemWindows设置为true,并且我的启动活动没有布局文件来将fitsSystemWindows设置为true。
我该如何做,以使我的启动屏幕不显示在系统栏后面?
答案 0 :(得分:1)
如果您不想花费更多时间调试此问题,可以使用android:paddingTop="20dp"
进行简单快速的修复
答案 1 :(得分:1)
找到解决方案:
在启动主题中,更改
<item name="android:windowBackground">@drawable/splash_screen</item>
到
<item name="android:background">@drawable/splash_screen</item>
现在启动画面可绘制对象将不会在系统栏后面绘制
答案 2 :(得分:0)
将此内容添加到onCreate()
之前的setContentView()
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
这将使您的splash screen fullscreen
答案 3 :(得分:0)
将此代码添加到您的Splash主题中:
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
答案 4 :(得分:0)
如果您要删除状态栏,请在setContentView(layout)
方法的onCreateView
之前使用它
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
或在XML设计的父级布局上设置paddingTop ="20dp"
。
android:paddingTop="20dp"
答案 5 :(得分:0)
这将使您的启动屏幕进入全屏模式。只需将其添加到您的onCreate()
或onCreateView()
上即可。
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN);
答案 6 :(得分:0)
您可以使用:
android:layout_alignParentBottom="true"
答案 7 :(得分:0)
添加此样式
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item> <!--use this to make the activity full screen-->
</style>
答案 8 :(得分:0)
在您的oncreate中尝试一下,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/** Hiding Title bar of this activity screen */
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
/** Making this activity, full screen */
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//setLayout
setContentView(R.layout.activity_splash);
}
并将您的主题设置为Theme.AppCompact.NoActionBar