SK.*_*SK. 16 java android webview
我想在我的webview中只有垂直滚动,不想要任何水平滚动.
webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
这有助于我解决滚动问题.
但使用这个使我的webview看起来很奇怪.所有编辑文本的高度被挤压(垂直)并且看起来很糟糕.
有没有其他方法可以禁用客户端的水平滚动?
使用SINGLE_COLUMN我们如何避免webview高度变化问题?我希望垂直外观与以前没有SINGLE_COLUMN的情况相同
小智 33
这是我如何禁用webview的水平滚动.
webView.setHorizontalScrollBarEnabled(false);
webView.setOnTouchListener(new View.OnTouchListener() {
float m_downX;
public boolean onTouch(View v, MotionEvent event) {
if (event.getPointerCount() > 1) {
//Multi touch detected
return true;
}
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
// save the x
m_downX = event.getX();
break;
}
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP: {
// set x so that it doesn't move
event.setLocation(m_downX, event.getY());
break;
}
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
基本上拦截触摸事件并且不允许x值改变.这允许webview垂直滚动但不能水平滚动.如果你想要相反,那就去做吧.
SBe*_*413 29
这是一个黑客,但过去曾成功地为我工作过.在垂直方向的ScrollView中环绕WebView:
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="vertical" >
<WebView
android:id="@+id/mywebview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
然后禁用WebView中的所有滚动.
要禁用WebView的滚动,可以使用以下代码:
// disable scroll on touch
webview.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
return (event.getAction() == MotionEvent.ACTION_MOVE);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37515 次 |
| 最近记录: |