WebView禁止上下滑動
阿新 • • 發佈:2018-12-27
在工作中 我們經常會把後臺傳回來的資料 用一個webview顯示出來。我們需要固定webview的大小的時候,webview 雖然大小被固定了 但是當資料過多的的時候顯示不全,依然可以在固定的大小內上下滑動。
但是如何禁止WebView不可滑動呢?WebView有幾個與滑動有關的方法都是無效的:
WebView.setScrollContainer(false);
WebView.setVerticalScrollBarEnabled(false);
WebView.setHorizontalScrollBarEnabled(false);
後來發現可以通過重寫WebView的scrollTo(intx,inty)方法來禁止滑動:
- publicclass WebViewMod extends WebView {
- public EditText mFocusDistraction;
- public Context mContext;
- public WebViewMod(Context context) {
- super(context);
- init(context);
- }
-
public WebViewMod(Context context, AttributeSet attrs) {
- super(context, attrs);
- init(context);
- }
- public WebViewMod(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- init(context);
- }
- @SuppressLint("NewApi")
-
public
- super(context, attrs, defStyle, privateBrowsing);
- init(context);
- }
- publicvoid init(Context context) {
- // This lets the layout editor display the view.
- if (isInEditMode()) return;
- mContext = context;
- mFocusDistraction = new EditText(context);
- mFocusDistraction.setBackgroundResource(android.R.color.transparent);
- this.addView(mFocusDistraction);
- mFocusDistraction.getLayoutParams().width = 1;
- mFocusDistraction.getLayoutParams().height = 1;
- }
- protectedvoid onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- invalidate();
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- }
- @Override
- publicboolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY,
- int scrollRangeX, int scrollRangeY, int maxOverScrollX,
- int maxOverScrollY, boolean isTouchEvent) {
- returnfalse;
- }
- /**
- * 使WebView不可滾動
- * */
- @Override
- publicvoid scrollTo(int x, int y){
- super.scrollTo(0,0);
- }
- }