如何在运行时更改 webview 的高度?

Posted

技术标签:

【中文标题】如何在运行时更改 webview 的高度?【英文标题】:How to change the height of a webview on Runtime? 【发布时间】:2011-01-21 10:01:29 【问题描述】:

我有一个 webview 和一个包含 4 个按钮的表格。我已将 webview 的高度设置为 400px,以便按钮以纵向模式显示在屏幕底部。我的问题是,当更改为横向模式时,按钮不可见。所以当方向改变时,我需要在运行时改变 webview 的高度。有人知道如何实现这一目标吗?我可以使用“onConfigurationChanged”函数捕捉方向变化。


感谢CommonsWare,我给的xml如下。应用程序在启动时崩溃。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_
    android:layout_>

<RelativeLayout android:layout_alignParentTop="true">

<WebView
    android:id="@+id/appView"
    android:layout_
    android:layout_ />

</RelativeLayout>
<RelativeLayout
    android:layout_alignParentBottom="true">

<TableLayout
    android:id="@+id/TableLayout01" 
    android:layout_ 
    android:layout_
    android:gravity="center_vertical">

<TableRow
    android:id="@+id/TableRow01" 
    android:layout_
    android:layout_
    android:gravity="center">

<ImageButton
    android:id="@+id/more"
    android:padding="1dip"
    android:src="@drawable/more1"
    android:layout_marginRight="15dip">
</ImageButton>
<ImageButton
    android:id="@+id/albums"
    android:padding="1dip"
    android:src="@drawable/albums1"
    android:layout_marginRight="15dip">
</ImageButton>
<ImageButton
    android:id="@+id/videos"
    android:padding="1dip"
    android:src="@drawable/videos"
    android:layout_marginRight="15dip">
</ImageButton>
<ImageButton
    android:id="@+id/artists"
    android:padding="1dip"
    android:src="@drawable/artists1"
    android:layout_marginRight="15dip">
</ImageButton>
</TableRow>
</TableLayout>
</RelativeLayout>
</LinearLayout>

【问题讨论】:

【参考方案1】:

设计您的布局以避免400px 的硬连线值。这不仅不能在您正在测试的任何模拟器/设备上以横向模式工作,而且在更小或更大的屏幕上也不会像您期望的那样工作。

请使用RelativeLayout,属性如android:layout_alignParentBottom 用于按钮,android:layout_alignParentTopandroid:layout_above 用于WebView。然后,您的布局将动态适应可用空间。

【讨论】:

以上是关于如何在运行时更改 webview 的高度?的主要内容,如果未能解决你的问题,请参考以下文章

更改 WKWebview 框架高度后如何删除 WKScrollView 内的空白区域?

SwiftUI - 如何在运行时更改内部内容后获取 ScrollView 内容高度

如何在使用tableViews自定义单元格时在运行时更改表视图单元格高度?

如何在使用 tableViews 自调整单元格时在运行时更改表格视图单元格高度?

如何强制 Android Webview 在 DOM 更改上重新绘制?

如何使用自动布局根据 webview 内容管理 UITableHeaderView 的高度