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