CoordinatorLayout 中 AppBarLayout 下面的 WebView 不起作用

Posted

技术标签:

【中文标题】CoordinatorLayout 中 AppBarLayout 下面的 WebView 不起作用【英文标题】:WebView below AppBarLayout in CoordinatorLayout not working 【发布时间】:2020-11-16 00:13:02 【问题描述】:

我用NestedScrollView 做了简单的WebView 工作正常,除了当我打开YouTube 时,YouTube 的搜索栏没有显示,但是当我开始滚动和Toolbar 隐藏时,我可以看到它。

我的问题是在Toolbar 下方设置WebView?如果我使用RelativeLayout,它会工作吗?

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_
android:layout_
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".MainActivityt"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.google.android.material.appbar.AppBarLayout

    android:id="@+id/appBarLayout"
    android:layout_
    android:layout_
    >

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_
    android:layout_
    android:background="?attr/colorPrimary"
    app:layout_scrollFlags="scroll|enterAlways|snap"
   >
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
    android:layout_below="@id/appBarLayout"
    android:layout_
    android:layout_>
<com.example.webviewcontexttest.NestedScrollWebView
    android:id="@+id/web_view"
    android:layout_
    android:layout_
    />
    
</FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

【问题讨论】:

【参考方案1】:

尝试在顶部添加边距。这是完整的代码...

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_
android:layout_
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".MainActivityt"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">

<com.google.android.material.appbar.AppBarLayout
    android:id="@+id/appBarLayout"
    app:layout_anchorGravity="top"
    android:layout_gravity="top"
    android:layout_
    android:layout_
    >

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_
    android:layout_
    android:background="?attr/colorPrimary"
    app:layout_scrollFlags="scroll|enterAlways|snap"
   >
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
    android:layout_below="@id/appBarLayout"
    android:layout_marginTop="?attr/actionBarSize"
    android:layout_
    android:layout_>
<com.example.webviewcontexttest.NestedScrollWebView
    android:id="@+id/web_view"
    android:layout_
    android:layout_
    />
    
</FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

希望这会有所帮助。随时要求澄清...

【讨论】:

我试过了,如果我不滑动它,它会起作用。如果我滚动它,工具栏隐藏并代替工具栏白色的东西仍然存在,这使得 webview 不能全屏或滚动到白色的东西下方 @mak 仍然如此。如果您想要良好的用户体验,请尝试完全删除 ToolBar 没有删除工具栏,无论如何感谢您的帮助,我会尽力找到解决方案。【参考方案2】:

这解决了我的问题

app:layout_behavior="@string/appbar_scrolling_view_behavior"

在工具栏下方制作 webview

<FrameLayout
    android:layout_below="@id/appBarLayout"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"

    android:layout_
    android:layout_>
    <com.example.webviewcontexttest.NestedScrollWebView
        android:id="@+id/web_view"
        android:layout_
        android:layout_
     

        />

</FrameLayout>

【讨论】:

以上是关于CoordinatorLayout 中 AppBarLayout 下面的 WebView 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

显示没有 CoordinatorLayout 的 Snackbar

CoordinatorLayout布局中要注意的问题

CoordinatorLayout原理的简析

在片段中使用 CoordinatorLayout 时如何使状态栏透明

CoordinatorLayout的使用如此简单

在CoordinatorLayout中,Supportmapfragment不工作。