Android 使 Activity 布局看起来与可绘制的初始屏幕相同

标签 android android-layout

我正在通过更改

<style name="Theme.Transparent" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/background_splash</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

主题的属性。

这个 drawable/background_splash 看起来像这样
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
    <item android:drawable="@color/colorPrimary"/>
    <item>
        <bitmap
            android:src="@drawable/ic_logo_black"
            android:gravity="center"/>
    </item>
</layer-list>

对于我的启动器 Activity ,它会在后面进行一些计算,然后有条件地导航到其他 Activity 。此计算需要服务器,因此它将在此 Activity 上停留一段时间。

为了让体验更好,我希望这个 Activity 看起来和闪屏一样。

所以我基本上是为布局做的。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background_splash"
    android:orientation="vertical">

</RelativeLayout>

但是,有了这个设置。我可以注意到,一旦 Logo 从启动屏幕转到启动器 Activity ,它就会向上移动大约 5-10 像素。

我的问题是,我该怎么做才能让这种转变完全消失?我显然可以硬编码一些边距。但我不确定这是否适用于所有设备尺寸。

那个 5-10px 的偏移是什么?我基本上使用确切的图像作为布局中的背景。

我注意到,如果我没有为 splashActivity 布局设置任何背景,这个问题就解决了。但我仍然想要一个背景,因为在我的用户工作流程中,用户可能会被重定向到这个屏幕。我不希望他们看到一个空的空白屏幕 =/

最佳答案

谢谢你的好问题

我找到了一种方法,将“drawable/background_splash”更改为

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
     <item>
       <color android:color="@color/colorPrimary" />
     </item>
     <item  android:bottom="48dp">
         <bitmap
             android:src="@drawable/ic_logo_black"
             android:layout_width="wrap_content"
             android:tileMode="disabled"
             android:layout_height="wrap_content"
             android:scaleType="fitCenter"/>
     </item>
 </layer-list>

似乎启动布局中的条形高度(48dp)未绑定(bind)!

关于Android 使 Activity 布局看起来与可绘制的初始屏幕相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45642113/

相关文章:

android - 如何删除回收器 View 中的空列表项?

android - 嵌套几个相对布局可以吗

android - 在 android 的 recyclerview 中弃用 getChildPosition()

java - 如何制作大写的 BottomNavigationView 菜单?

android - 双向滚动 ListView ?

android - 根据固定页脚限制 fragment 大小

android - 在 stripDebugDebugSymbols 步骤中找不到 arm-linux-androideabi 工具链

android - fragment 布局中的 TextView 在调用 SetText() 时不会更改

android - 如何在本地存储 SQLcipher 密码

android:tabStripEnabled ="false"不起作用