java - Webview 改变高度大小
问题描述
我有一个内容为 html 的 webview,我希望 webview 的边框占据所有屏幕,如下图所示
这是我的代码:
webView.loadData(html, "text/html; charset=utf-8", "UTF-8")
webView.settings.loadWithOverviewMode = true
webView.settings.useWideViewPort = true
我的xml代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.emoonadev.mickael.gestioclientel.Activities.PreviewPDFActivity">
<WebView
android:id="@+id/app_web_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
这是我的html:
<!doctype html>
<html xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="utf-8"/>
<title>A simple, clean, and responsive HTML invoice template</title>
<style>
.invoice-box {
max-width: 800px;
margin: auto;
padding: 30px;
border: 1px solid #eee;
box-shadow: 0 0 10px rgba(0, 0, 0, .15);
font-size: 16px;
line-height: 24px;
font-family: 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif;
color: #555;
}
.invoice-box table {
width: 100%;
line-height: inherit;
text-align: left;
}
.invoice-box table td {
padding: 5px;
vertical-align: top;
}
.invoice-box table tr td:nth-child(2) {
text-align: right;
}
.invoice-box table tr.top table td {
padding-bottom: 20px;
}
.invoice-box table tr.top table td.title {
font-size: 45px;
line-height: 45px;
color: #333;
}
.invoice-box table tr.information table td {
padding-bottom: 40px;
}
.invoice-box table tr.heading td {
background: #eee;
border-bottom: 1px solid #ddd;
font-weight: bold;
}
.invoice-box table tr.details td {
padding-bottom: 20px;
}
.invoice-box table tr.item td{
border-bottom: 1px solid #eee;
}
.invoice-box table tr.item.last td {
border-bottom: none;
}
.invoice-box table tr.total td:nth-child(2) {
border-top: 2px solid #eee;
font-weight: bold;
}
@media only screen and (max-width: 600px) {
.invoice-box table tr.top table td {
width: 100%;
display: block;
text-align: center;
}
.invoice-box table tr.information table td {
width: 100%;
display: block;
text-align: center;
}
}
/** RTL **/
.rtl {
direction: rtl;
font-family: Tahoma, 'Helvetica Neue', 'Helvetica', Helvetica, Arial, sans-serif;
}
.rtl table {
text-align: right;
}
.rtl table tr td:nth-child(2) {
text-align: left;
}
#space{
}
</style>
</head>
<body>
<div class="invoice-box">
<table cellpadding="0" cellspacing="0">
<tr class="top">
<td colspan="6">
<table>
<tr>
<td class="title">
<img src="#LOGO#" style="width:50%; max-width:300px;"/>
</td>
<td>
<strong><h2> #INVOICE_NUMBER# </h2></strong><br/>
Created: #INVOICE_DATE#
</td>
</tr>
</table>
</td>
</tr>
<tr class="information">
<td colspan="6">
<table>
<tr>
<td>
#COMPANY_NAME#<br/>
#COMPANY_PHONE#<br/>
#COMPANY_ADDRESS#<br/>
</td>
<td>
#USER_NAME#<br/>
#USER_PHONE#<br/>
#USER_ADDRESS#<br/>
</td>
</tr>
</table>
</td>
</tr>
<tr class="heading">
<td>
Item
</td>
<td>
<center>Unit price HT</center>
</td>
<td>
<center>Quantity</center>
</td>
<td>
<center>HT</center>
</td>
<td>
<center>VAT</center>
</td>
<td>
<center>Price</center>
</td>
</tr>
#ITEMS#
<tr class="total">
<td>
<div id="space"><br/><br/><br/><br/></div>
Total HT: #TOTAL_HT#<br/>
VAT #VAT# %: #TOTAL_VAT#<br/>
Discount: #DISCOUNT#<br/>
Total TTC: #TOTAL_TTC#<br/>
#TOTAL_AFTER_DISCOUNT#
</td>
</tr>
</table>
</div>
</body>
</html>
谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢, 谢谢谢谢
解决方案
我很难确定您的代码的哪个方面与您希望在整个屏幕上显示的内容框相关联。
您需要识别代码并使用 CSS 属性高度。我认为 .invoice-box 是正确的类标识符,但我不能确定。
.invoice-box {
height: 100%;
}
对内容框使用百分比将始终确保该框占据窗口高度的 100%。
希望这可以帮助。
推荐阅读
- c++ - wxPython 从 4.0.7 迁移到 4.1.0:事件处理时出现 ListCtrl 错误
- discord.py - 前 10 个硬币系统给出错误 discord.py
- asp.net-mvc - Simple Injector,服务和多个实例的依赖注入
- reactjs - 图表未在 chart.js 中显示
- operating-system - 如何为我的操作系统编写自己的视频驱动程序?
- vue-component - 如何在 VueJs 组件中正确引用 HTMLElement
- elasticsearch - 如何在 Elasticsearch 中将这些单词分开写的数据中按写在一起的单词进行搜索?
- javascript - 打字稿保持引用并保持两个对象相同
- r - 从R中的.tif中提取颜色
- javascript - 为什么用于导入订单的 Eslint 插件在 CRA 中不起作用?