在Android 4.4.2的WebView中测试我的Web应用程序时,滚动对任何元素都不起作用。没有调用javascript“onscroll”事件。
但是,从Android 5开始,它运行正常。
编辑:我不滚动的元素具有基于百分比的高度(即“高度:100%”),但是当我改为基于像素(即“高度:50px”)时,滚动有效。因此,它必须与WebView 4.4.2呈现div的方式有关。
答案 0 :(得分:0)
滚动问题的一个可能解决方案是将您的webview放入滚动视图。这样webview就像它的内容一样大,滚动由滚动视图完成。但滚动事件不会在您的javascript中触发,您需要使您的滚动视图可观察并通过javascript界面发送这些事件。也许有人会为你提供一个更好的。
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;
public class ObservableScrollView extends ScrollView {
public interface OnObservableScrollViewScrolled {
public void onObservableScrollViewScrolled(ObservableScrollView sv, int l, int t, int oldl, int oldt);
}
private OnObservableScrollViewScrolled listener;
public ObservableScrollView(Context context) {
this(context, null, -1);
}
public ObservableScrollView(Context context, AttributeSet attrs) {
this(context, attrs, -1);
}
public ObservableScrollView(Context context, AttributeSet attrs, int style) {
super(context, attrs, style);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
// Notify external listener
if (listener != null)
listener.onObservableScrollViewScrolled(this, l, t, oldl, oldt);
}
public void setScrollListener(OnObservableScrollViewScrolled callback) {
this.listener = callback;
}
}