如何使WebView高度尺寸与屏幕高度相适应?

发布于 2024-12-08 20:37:05 字数 1446 浏览 0 评论 0原文

如果我的 WebView 太大,我没有问题,即使内容太大我可以滚动 WebView 的内容,WebView 高度也适合屏幕高度。 但是如果WebView的内容太少,WebView的高度就会不适合屏幕。

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<ScrollView android:layout_width="fill_parent"
    android:layout_height="fill_parent"
        android:fitsSystemWindows="true">

    <WebView android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fitsSystemWindows="true" />

</ScrollView>

<LinearLayout android:id="@+id/media_player"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:visibility="visible">

    <Button android:textStyle="bold"
        android:id="@+id/ButtonPlayStop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:drawable/ic_media_play" />

    <SeekBar android:id="@+id/SeekBar"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_below="@id/ButtonPlayStop" />

</LinearLayout>

这是屏幕截图:

在此处输入图像描述

任何人都可以帮助我解决这个问题吗?

If my WebView is so large, I have no problem and WebView height fit the screen height even when the content is so bigger I can scroll the content of WebView.
But if the content of WebView is little, the WebView height doesn't fit the screen.

This is my layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<ScrollView android:layout_width="fill_parent"
    android:layout_height="fill_parent"
        android:fitsSystemWindows="true">

    <WebView android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fitsSystemWindows="true" />

</ScrollView>

<LinearLayout android:id="@+id/media_player"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:visibility="visible">

    <Button android:textStyle="bold"
        android:id="@+id/ButtonPlayStop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:drawable/ic_media_play" />

    <SeekBar android:id="@+id/SeekBar"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_below="@id/ButtonPlayStop" />

</LinearLayout>

Here is the screenshot:

enter image description here

Any one could help me to solve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心碎无痕… 2024-12-15 20:37:07

您不需要将 WebView 放置在 ScrollView 内部,因为它已经知道当其内容大于其视图边界时如何滚动。将滚动视图放置在其他滚动视图内往往会导致不良行为。

暂且不管这一点,如果 ScrollView 的内容太小,它就不会自行拉伸以占用额外的空白空间。也就是说,除非特殊标志 (android:fillViewport )被使用。

作为解决方案,我会删除外部的 ScrollView 并尝试让 WebView 自行占据空间。如果您使用 RelativeLayout 作为容器,您可以获得仅具有一层深度的布局:

  • 播放按钮位于父搜索栏的左下角
  • ,位于播放按钮的底部和右侧
  • < p>WebView 位于其上方,宽度和高度为 fill_parent

    
    
    <按钮 android:textStyle="bold"
    android:id="@+id/ButtonPlayStop"
    安卓:layout_width =“wrap_content”
    安卓:layout_height =“wrap_content”
    机器人:layout_alignParentBottom =“真”
    android:background="@android:drawable/ic_media_play" />
    
    
    
    
    
    
    

You don't need to place a WebView inside of a ScrollView since it already knows how to scroll when its contents are larger than its view boundaries. Placing scrolling views inside other scrolling views tends to lead to undesirable behaviour.

Disregarding that for a second, a ScrollView will not stretch itself to take up extra empty space if its contents are too small. That is, unless the special flag (android:fillViewport) is used.

As a solution, I would remove the outer ScrollView and try to make the WebView take up the space by its own right. If you use a RelativeLayout as the container you can obtain this layout with only one level of depth:

  • play button goes bottom-left of parent
  • seek bar goes to the bottom and to the right of the play button
  • WebView is above them with fill_parent in width and height

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    
    <Button android:textStyle="bold"
    android:id="@+id/ButtonPlayStop"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@android:drawable/ic_media_play" />
    
    <SeekBar android:id="@+id/SeekBar"
    android:layout_toRightOf="@+id/ButtonPlayStop"
    android:layout_alignParentBottom="true"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:layout_below="@id/ButtonPlayStop" />
    
    <WebView android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@id/ButtonPlayStop" />
    
    </RelativeLayout>
    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文