Android Studio-Element隐藏在智能手机后面

时间:2019-07-19 09:41:16

标签: android webview

我在Web视图中添加了一个按钮,但是该按钮部分隐藏在智能手机的后面。

我在下面的屏幕截图中绘制了一个红色矩形,这是显示器的实际尺寸,为什么webview区域大于显示器的尺寸?我必须将按钮移到更高的位置,这样它才不会显示出来。

enter image description here

在xCode(iOS)中,有一个“安全区域”,它是显示器的可见区域,没有状态栏和底部栏,Android Studio中是否有类似的东西?

我该如何解决?

我正在运行Android Studio 3.4.2

activity_fullscreen.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="visible"
    tools:context="de.blizz_z.onlineshop.FullscreenActivity">

    <Button
        android:id="@+id/backButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginLeft="32dp"
        android:layout_marginBottom="20dp"
        android:text="Zurück"
        app:layout_constraintBottom_toBottomOf="@+id/blizzView"
        app:layout_constraintStart_toStartOf="@+id/blizzView" />

    <WebView
        android:id="@+id/blizzView"
        android:layout_width="412dp"
        android:layout_height="844dp"
        android:keepScreenOn="true"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

    </WebView>

4 个答案:

答案 0 :(得分:2)

您已将WebView的大小设置为任意大小,这很可能使其超出了设备的屏幕。 Button约束已正确设置,但由于WebView的底部不在屏幕上,因此按钮也在屏幕上。
尝试更改

    android:layout_width="412dp"
    android:layout_height="844dp"

    android:layout_width="match_parent"
    android:layout_height="match_parent"

这将使WebView适应所有设备的全屏,并将Button限制在WebView的左下角。

答案 1 :(得分:0)

该项目的屏幕大小可能与您手机的分辨率不同

尝试为Webview声明新的布局尺寸,否则您可以在打开Webview时将按钮的可见性设置为无。

btn.setVisibility(View.GONE); 

答案 2 :(得分:0)

如果要在WebView上放置按钮,请使用FrameLayout作为父项,然后执行以下操作:

<FrameLayout>
<WebView/>
<Button/>
</FrameLayout>

答案 3 :(得分:0)

您正在将WebView设置为特定的高度和宽度,如果要支持多个设备,这是不明智的做法。在您的XML中:

<Button
    android:id="@+id/backButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="32dp"
    android:layout_marginLeft="32dp"
    android:layout_marginBottom="20dp"
    android:text="Zurück"
    app:layout_constraintBottom_toBottomOf="@+id/blizzView"
    app:layout_constraintStart_toStartOf="@+id/blizzView" />

<WebView
    android:id="@+id/blizzView"
    android:layout_width="412dp"
    android:layout_height="844dp"
    android:keepScreenOn="true"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

</WebView>

您正在将WebView设置为844dp的高度,这意味着当设备的高度小于此高度时,它将过度滚动。同样,您的Button被限制在WebView上,因为它应该相对于父视图,因为它在WebView上浮动。因此,我认为您应该将XML更改为此(粘贴时删除我的注释):

<Button
    android:id="@+id/backButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="32dp"
    android:layout_marginLeft="32dp"
    android:layout_marginBottom="20dp"
    android:text="Zurück"
    app:layout_constraintBottom_toBottomOf="parent" <!-- Constrain to parent, not WebView -->
    app:layout_constraintStart_toStartOf="parent"   <!-- Constrain to parent, not WebView --> />

<WebView
    android:id="@+id/blizzView"
    android:layout_width="match_parent"   <!-- Change from fixed dimension to "match_parent" -->
    android:layout_height="match_parent"  <!-- Change from fixed dimension to "match_parent" -->
    android:keepScreenOn="true"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

</WebView>