屏幕高度取决于主题

时间:2016-07-29 17:58:52

标签: android android-layout android-theme

我的布局采用居中的图片视图

<?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/WHITE">

    <ImageView
        android:id="@+id/powered_by"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:src="@drawable/powered_by" />

    <ImageView
        android:id="@+id/splash_logo"
        android:src="@drawable/logo"
        app:layout_widthPercent="70%"
        app:layout_heightPercent="70%"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:adjustViewBounds="true"
        android:visibility="invisible" />

</android.support.percent.PercentRelativeLayout>

以下是我的活动的主题设置

<style name="SplashTheme" parent="android:Theme.Holo.Light">
    <item name="android:windowBackground">@drawable/splash</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

当我将父主题更改为android:Theme.DeviceDefault.Light时, ImageView会显得略高一些,而不是在屏幕的中心。我的设备的父视图现在似乎不是从屏幕底部开始,而是从底部工具栏开始(我使用带有屏幕按钮的Nexus 5X)。

我想将设备默认主题用于现代对话框外观,但我还需要将此图像视图完全置于所有设备的中心位置。

怎么做?

1 个答案:

答案 0 :(得分:0)

似乎android:Theme.DeviceDefault.Light未设置android:windowFullScreen。因此,您需要使用父android:Theme.DeviceDefault.Light创建自己的主题,并更改要更改的项目的值

<style name="TestTheme" parent="android:Theme.DeviceDefault.Light">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>