Layout和drawable的居中方式不同

问题描述 投票:0回答:1

我的初始屏幕有两种布局,基本上由一个位于屏幕中心的图标组成。

其中一个是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

因此,这些文件基本上是一个以空白屏幕为中心的图标,没有任何其他样式。我希望它们都能够完美居中。但是实际上,它们看起来像:

enter image description here

第一张图片是drawable中的一张,第二张图片是layout中的一张。如您所见,第二个是用LinearLayout构建的,位于第二个。由于这些屏幕是一个接一个显示的,因此感觉就像图标向上移动。

我已经尝试在ImageView中添加边距或填充,但是在其他设备中无法呈现相同的效果。我也尝试将gravitylayout_gravity与不同的参数和组合一起使用,但是它们要么居中,要么不完全相同。我以为状态栏可能会导致此问题,但状态栏始终存在,并且应用程序始终为全屏。您是否有任何想法为什么会出现这种居中问题?预先感谢。

android react-native android-linearlayout splash-screen android-drawable
1个回答
0
投票

我认为这是因为活动背景忽略了底部导航偏移。看来这种行为没有问题

© www.soinside.com 2019 - 2024. All rights reserved.