1. 程式人生 > >WebView禁止上下滑動

WebView禁止上下滑動

在工作中 我們經常會把後臺傳回來的資料  用一個webview顯示出來。我們需要固定webview的大小的時候,webview 雖然大小被固定了 但是當資料過多的的時候顯示不全,依然可以在固定的大小內上下滑動。
但是如何禁止WebView不可滑動呢?WebView有幾個與滑動有關的方法都是無效的:

    WebView.setScrollContainer(false);
    WebView.setVerticalScrollBarEnabled(false);
    WebView.setHorizontalScrollBarEnabled(false);

後來發現可以通過重寫WebView的scrollTo(intx,inty)方法來禁止滑動:


  1. publicclass WebViewMod extends WebView {  
  2.     public EditText mFocusDistraction;  
  3.     public Context mContext;  
  4.     public WebViewMod(Context context) {  
  5.             super(context);  
  6.             init(context);  
  7.         }      
  8.         public WebViewMod(Context context, AttributeSet attrs) {  
  9.             super(context, attrs);  
  10.             init(context);  
  11.         }      
  12.         public WebViewMod(Context context, AttributeSet attrs, int defStyle) {  
  13.             super(context, attrs, defStyle);  
  14.             init(context);  
  15.         }  
  16.         @SuppressLint("NewApi")   
  17.         public
     WebViewMod(Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing) {  
  18.             super(context, attrs, defStyle, privateBrowsing);  
  19.             init(context);  
  20.         }  
  21.         publicvoid init(Context context) {  
  22.             // This lets the layout editor display the view.
  23.             if (isInEditMode()) return;  
  24.             mContext = context;  
  25.             mFocusDistraction = new EditText(context);  
  26.             mFocusDistraction.setBackgroundResource(android.R.color.transparent);  
  27.             this.addView(mFocusDistraction);  
  28.             mFocusDistraction.getLayoutParams().width = 1;  
  29.             mFocusDistraction.getLayoutParams().height = 1;  
  30.         }  
  31.         protectedvoid onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
  32.             invalidate();  
  33.                 super.onMeasure(widthMeasureSpec, heightMeasureSpec);  
  34.         }  
  35.         @Override
  36.         publicboolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY,   
  37.                                     int scrollRangeX, int scrollRangeY, int maxOverScrollX,   
  38.                                     int maxOverScrollY, boolean isTouchEvent) {  
  39.             returnfalse;  
  40.         }  
  41.         /** 
  42.          * 使WebView不可滾動 
  43.          * */
  44.         @Override
  45.         publicvoid scrollTo(int x, int y){  
  46.             super.scrollTo(0,0);  
  47.         }  
  48.     }  
這樣 就可以禁止webview的滑動了