jjzjj

安卓 WebView : How to scroll the whole activity layout

coder 2023-12-17 原文

我有一个显示电子邮件内容的 Activity 。 有一个包含收件人和日期的 header ,以及一个显示邮件内容的 WebView 。

当邮件很长时,没问题,webview里面有滚动条。

但我的问题是当收件人列表很长时,header占了屏幕高度的50%,而webview只占了屏幕高度的50%,我只能在这50%里面滚动。我想在整个 Activity 布局上滚动(我希望 webview 获得它的完整高度,并且滚动条出现在整个 Activity 上)。

这是一张说明我的问题的图片:

这是我的 layout.xml:

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

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@layout/header_gradient" >
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#DEDEDE"
    android:orientation="vertical"
    android:padding="2dp" >

    <TextView
        android:id="@+id/label_mail_object"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="&lt;mail_object>"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/label_mail_from"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="&lt;from>"
        android:textColor="#0000FF" />

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:shrinkColumns="0"
        android:stretchColumns="1" >

        <!-- Send time -->

        <TableRow
            android:id="@+id/tablerow_sent_date"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/label_sent_date"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/label_mail_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="&lt;sent_date>" />
        </TableRow>

        <!-- To -->

        <TableRow
            android:id="@+id/tablerow_to"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/label_to"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/label_mail_to"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:maxWidth="@dimen/padding_large"
                android:text="&lt;to>" />

        </TableRow>

        <!-- Cc -->

        <TableRow
            android:id="@+id/tablerow_cc"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/label_cc"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/label_mail_cc"
                 android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:maxWidth="@dimen/padding_large"
                android:text="&lt;cc>" />
        </TableRow>

        <!-- To -->

        <TableRow
            android:id="@+id/tablerow_cci"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/label_cci"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/label_mail_cci"
                 android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:maxWidth="@dimen/padding_large"
                android:text="&lt;cci>" />
        </TableRow>

    </TableLayout>

</LinearLayout>

<View
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:background="#808080" />

<WebView
    android:id="@+id/webview_mail_preview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

</LinearLayout>

最佳答案

为什么不将收件人的列表内容包裹在 ScrollView 中,然后将此 ScrollView 的布局高度设置为您选择的大小。

这样他们就可以继续滚动浏览收件人的页面(如果他们愿意的话)并且仍然有大部分屏幕专用于 Web View 。

如果你想要整个 View 只有一个滚动条,那么做同样的事情但简单地包裹所有东西。

不懂的可以私信我

关于安卓 WebView : How to scroll the whole activity layout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15724166/

有关安卓 WebView : How to scroll the whole activity layout的更多相关文章

  1. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  2. 微信小程序 webview页面分享弹窗 - 2

    微信小程序webview中使用cover-view展示分享弹窗公司业务需要在webview中添加分享弹窗,可以发送给朋友及生成海报分享,因为好几个详情都需要这个功能,因此抽离了share-sheet的组件,ui效果如下图:点击分享,显示以下弹窗share-sheet.wxml如下:{!show}}"catchtouchmove="poptouchmove">发送给朋友生成海报取消share-sheet.js如下:Component({options:{addGlobalClass:true,},/***组件的属性列表*/properties:{//控制弹窗显示与否show:{type:Bool

  3. (一)专题介绍:移动端安卓手机改造成linux服务器&linux服务器中安装软件、部署前后端分离项目实战 - 2

    快捷目录前言一、涉及到的相关技术简介二、具体实现过程及踩坑杂谈1.安卓手机改造成linux系统实现方案2.改造后的手机Linux中软件的安装3.手机Linux中安装MySQL5.7踩坑实录4.手机Linux中安装软件的正确方法三、Linux服务器部署前后端分离项目流程1.前提准备(安装必要软件,搭建环境):2.前后端分离项目的详细部署过程:总结前言总体概述:本篇文章隶属于“手机改造服务器部署前后端分离项目”系列专栏,该专栏将分多个板块,每个板块独立成篇来详细记录:手机(安卓)改造成个人服务器(Linux)、Linux中安装软件、配置开发环境、部署JAVA+VUE+MySQL5.7前后端分离项目

  4. javascript - 从 atom Electron 中的 webview 访问 DOM - 2

    是否可以从原子Electron桌面开发工具包中的webview元素中抓取html,我正在尝试访问DOM但我什么也没得到,我在运行时尝试了控制台中的document.links但我得到了空属性和对象作为返回?window.onresize=doLayout;varisLoading=false;onload=function(){varwebview=document.querySelector('webview');doLayout();vart=webview.executeJavaScript("console.log(document.links);");document.que

  5. java - 从 JavaFX 程序为 WebView 执行 Javascript 函数 - 2

    我正在尝试从Java程序执行Javascript函数。Javascript函数获取HTML文件的内容并突出显示特定单词的出现。是否可以从webview对象调用Javascript函数? 最佳答案 要在WebView中运行javascript,您可以使用WebEngine.executeScript()方法。并且有很多方法可以通过javascript突出显示文本。例如。HighlightwordinHTMLtext(butnotmarkup)一起:WebViewwebView=newWebView();finalWebEngineen

  6. javascript - 在 WebView 源代码中执行 JavaScript - 2

    有人知道如何(如果可能的话)在ReactNative的WebView“内部”执行JS吗?场景:我的WebView中显示了这个远程登录页面(网站),该网站有一系列与用户事件相对应的事件。所有事件都触发一个回调,WebView必须监听(这不是问题)。在每个回调中都有一个对JavaScript函数的引用,它必须在WebView内部调用(这就是问题所在!)。因此,我需要从我的ReactNative应用程序调用这个JavaScript函数,该函数位于我的WebView中加载的网站页面(源)上。我有什么:我用onShouldStartLoadWithRequest监听回调并以此操作WebView的

  7. javascript - 如何从 Electron 中的 webview.executeJavaScript 获取返回值 - 2

    大家好,在我的项目中,我有三个js文件,ma​​in.js、browser.js和inject.js,在browser.js我已经实现了所有与我的webview相关的点击操作和许多功能,从这里我有一个点击操作来从加载到webview的网页中获取用户名,为此我在中创建了一个函数>inject.js从页面获取内容和元素我在Inject.js文件中得到了值,但在Browser.js文件中我得到了未定义的值这里是我的示例代码:browser.jsvarproName=webview.executeJavaScript('__myInjection.profileName()');inject.

  8. javascript - 谷歌浏览器应用 : Webview behavior - 2

    在研究上的问题时在Chrome扩展上,在Chrome应用程序中引起了我的注意并引起了我的兴趣。所以我决定做一个我在上面临的问题的小例子看看是否解决它。根据我对观看Chrome开发视频的理解,webview在与您的应用程序不同的进程中运行;它没有与您的应用程序相同的权限。所以我假设如果运行中的内容以某种方式与“主线程”(应用程序)分开,我猜他们的内容将彼此分开执行而不阻塞应用程序或另一个,以防它们中的任何一个可能有可能长时间运行的js执行。因此我做了以下事情:背景.jschrome.app.runtime.onLaunched.addListener(function(){//Telly

  9. javascript - 如何在 Electron 中使用 <webview> 方法 - 2

    关于Electrondocumentation有一个可以与该对象一起使用的方法列表。当我尝试运行任何一种方法时,它们都不起作用。当我查看的属性时检查器中的元素,它说它的原型(prototype)是webview.(__proto__:webview)所有方法都存储在该原型(prototype)中。因此,当我使用这些方法时,我的元素基本上应该从其原型(prototype)继承这些方法(例如myWebview.openDevTools())。但是!当我使用Object.getProptotypeOf(myWebview)我得到HTMLElement,不是webview就像它在检查器中显示的

  10. javascript - Webview 的 Electron 预加载脚本不起作用? - 2

    我有这样加载的webview:在preload.js文件中:我有这个console.log("test");这根本行不通..谁能解释一下? 最佳答案 我只是尝试了相同的场景,它按预期工作。你有吗?开发工具打开了吗?作为有自己的开发工具,这是我能看到预加载脚本没有显示console.log的唯一原因输出。它们可以通过以下方式打开:varwebview=document.getElementById("link-view");webview.openDevTools();或者您的脚本路径不正确,我对此表示怀疑,因为您似乎对此很确定。

随机推荐