我在Web视图中添加了一个按钮,但是该按钮部分隐藏在智能手机的后面。
我在下面的屏幕截图中绘制了一个红色矩形,这是显示器的实际尺寸,为什么webview区域大于显示器的尺寸?我必须将按钮移到更高的位置,这样它才不会显示出来。
在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>
答案 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>