2011-04-12 7 views
6

웹보기 세로 스크롤보기를 비활성화하고 싶습니다.이 방법으로 웹보기 의 웹보기 열을 웹 페이지에로드하고 책 읽기 효과를 줄 수 있습니다.비활성화하는 방법 전체보기를 다른 열로로드하려면 webview의 세로 스크롤을 비활성화하십시오.

이것은 내가 html.it에서 추가 한 스타일입니다. 전혀 작동하지 않습니다.

loadingStringHorizontal="<style type='text/css'>body { width:200px;height:400px; 
    -webkit-column-gap:17px;-webkit-column-width:170px; 
    text-align:justify ;} </style>"; 

감사합니다.

+0

질문하기 제목 말한다 자바 스크립트 코드 : 웹보기의 수평 스크롤을 사용하지 않도록 설정합니다. 귀하의 질문에 대한 설명은 당신이 webview의 세로 스크롤보기를 비활성화하고 싶다고 말합니다! –

+1

고마워 주셔서 감사합니다 – DroidBot

+0

시험해보십시오. http://stackoverflow.com/questions/2527899/disable-scrolling-in-webview – rajath

답변

0

를 추가해보십시오 CSS overflow: auto;overflow-y: hidden;

4

당신은 하나의 열 레이아웃 시도 할 수 있습니다

myWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); 

또는 XML에 당신은 당신에게 처음 myWebView.setScrollContainer(false);

+0

SINGLE_COLUMN은 (는) 더 이상 지원되지 않습니다 – Roel

1

을 설정

<WebView 
    android:scrollbars="none" /> 

스크롤 없음을 넣을 수 있습니다 사용 중지 세로 맞춤 웹보기를 추가해야합니다. 다음은 자바 스크립트 당신은 당신의 페이지가 완전히에로드 한 후 웹보기

CustomWebView webView_ = (CustomWebView) view.findViewById(R.id.webView); 
webView_.getSettings().setUseWideViewPort(true); 
webView_.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); 
/** 
* hide vertical scrollBar 
*/ 
webView_.setVerticalScrollBarEnabled(false); 

의 설정이 라인을 적용해야 (https://stackoverflow.com/a/9165698/1140304)

과 다중 열 웹보기를 만들 수 아래로

class CustomWebView2 extends WebView 
{ 
    Context mContext = null; 
    private float start_y = -1; 
    private String DEBUG_TAG = " touch:"; 

    public CustomWebView2(Context context) 
    { 
     super(context); 
     mContext = this.getContext(); 
    } 

    public CustomWebView2(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     mContext = context; 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) 
    { 
     int action = event.getAction(); 

     switch (action) 
     { 
      case (MotionEvent.ACTION_DOWN): 
       /** 
       * get Y position 
       */ 
       start_y = event.getY(); 
       break; 
      case (MotionEvent.ACTION_MOVE): 
       /** 
       * if you scroll to up more than 60px 
       * webView scroll back to Y=0 
       */ 
       if(start_y-event.getY()>60) 
       { 
        scrollTo(getScrollX(),0); 
        return true; 
       } 
       break; 
      case (MotionEvent.ACTION_UP): 
       Log.d(DEBUG_TAG, "Action was UP"); 
       break; 
     } 
     return super.onTouchEvent(event); 
    } 
} 

스크롤 webview에서 자바 스크립트 코드를 실행해야합니다.

webView_.setWebViewClient(new WebViewClient(){ 

      public void onPageFinished(WebView view, String url) { 
       injectJavascript(); 
      } 

     }); 

public void injectJavascript() { 
     String js = "javascript:function initialize() { " + 
       "var d = document.getElementsByTagName('body')[0];" + 
       "var ourH = window.innerHeight; " + 
       "var ourW = window.innerWidth; " + 
       "var fullH = d.offsetHeight; " + 
       "var pageCount = Math.floor(fullH/ourH)+1;" + 
       "var currentPage = 0; " + 
       "var newW = pageCount*ourW; " + 
       "d.style.height = ourH+'px';" + 
       "d.style.width = newW+'px';" + 
       "d.style.webkitColumnGap = '2px'; " + 
       "d.style.margin = 0; " + 
       "d.style.webkitColumnCount = pageCount;" + 
       "}"; 
     webView_.loadUrl(js); 
     webView_.loadUrl("javascript:initialize()"); 
    } 
+0

코드 만 덤프하는 대신 설명을 추가하십시오. –

관련 문제