尝试了太多次但失败了,这是我尝试过的代码
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:fillViewport="true">
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mainweb">
</WebView>
</android.support.v4.widget.NestedScrollView>
启动应用程序时,嵌套滚动视图可以正常工作,但有时Webview不能滚动。
我在嵌套滚动视图中插入了webview以隐藏片段活动中的工具栏
过去7个月来我一直在解决这个问题,因此将为您提供任何帮助
答案 0 :(得分:0)
WebView有自己的滚动,因此不需要NestedScrollView。
因为NestedScrollView Webview出现滚动问题。
请尝试以下代码作为参考:
<?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=".MainActivity" >
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="0dp" />
</RelativeLayout>
您可以根据需要添加webview的父级,例如LinearLayout,ConstraintLayout等。
答案 1 :(得分:0)
您需要在build.gradle文件中添加此依赖项
implementation 'com.github.ksoichiro:android-observablescrollview:1.6.0'
在您的java类中
ObservableWebView webView;
webView.setScrollViewCallbacks(new ObservableScrollViewCallbacks() {
@Override
public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) {
}
@Override
public void onDownMotionEvent() {
}
@Override
public void onUpOrCancelMotionEvent(ScrollState scrollState) {
if (scrollState == ScrollState.UP) {
((AppCompatActivity)getActivity()).getSupportActionBar().hide();
// hide your action bar
} else if (scrollState == ScrollState.DOWN) {
((AppCompatActivity)getActivity()).getSupportActionBar().show();
// show your action bar
}
}
});