我的初始屏幕有两种布局,基本上由一个位于屏幕中心的图标组成。
其中一个是drawable/launch_screen.xml
。这个用于AppTheme
。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<item android:drawable="@android:color/black" />
<item>
<bitmap
android:gravity="center"
android:src="@android:drawable/ic_menu_camera" />
</item>
</layer-list>
我将此文件用于我的应用程序主题,如下所示:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/launch_screen</item>
</style>
另一个是layout/launch_screen.xml
。由库react-native-splash-screen
使用。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_menu_camera" />
</LinearLayout>
[如果您需要详细信息,我会在this guide之后构建启动画面机制。打开应用程序后,AppTheme
显示drawable/launch_screen
作为背景,然后启动屏幕出现,并显示layout/launch_screen
。
因此,这些文件基本上是一个以空白屏幕为中心的图标,没有任何其他样式。我希望它们都能够完美居中。但是实际上,它们看起来像:
第一张图片是drawable
中的一张,第二张图片是layout
中的一张。如您所见,第二个是用LinearLayout
构建的,位于第二个。由于这些屏幕是一个接一个显示的,因此感觉就像图标向上移动。
我已经尝试在ImageView中添加边距或填充,但是在其他设备中无法呈现相同的效果。我也尝试将gravity
和layout_gravity
与不同的参数和组合一起使用,但是它们要么居中,要么不完全相同。我以为状态栏可能会导致此问题,但状态栏始终存在,并且应用程序始终为全屏。您是否有任何想法为什么会出现这种居中问题?预先感谢。
我认为这是因为活动背景忽略了底部导航偏移。看来这种行为没有问题