안녕하세요 안드로이드 개발중인 초보 개발자입니다.
바로 질문 드리겠습니다. 소스에서 linearlayout.addView(webView) 이렇게 하더라도 실제로는 첫번째 페이지만 나오더라구요. 스크롤도 안생기고..
제가 궁금한 것은 ScrollView로 Linear를 감싸지 않고 Linear에서 WebView를 addView 했을 때 모든 웹뷰를 보려면 어떻게 해야할까요? (shouldOverriding에서 전부 다 끝난 뒤 linearlayout의 크기를 바꿔줘도 안되더라구요..ㅎ)
소스입니다~ 감사합니다~!
.java
for (int i = 0; i < webviewCount; i++) {
WebView sWebView = new WebView(this);
setWebviewInit(sWebView, i); //WebView에 관한 세팅을해줍니다.
arrWebView.add(sWebView);
mainLinearLayout.addView(sWebView);
}
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(arrWebView.get(arrWebView.size()-1) == view){
// 이 아래 줄은 에러가 나더라구요..
// mainLinearLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
// 이 아래처럼 해봐도 화면상으로는 한 화면에만 꽉차게 나오더라구요..
LinearLayout layout = (LinearLayout)findViewById(R.id.mainLinearLayout);
LayoutParams params = layout.getLayoutParams();
params.height = 7000;//mainLinearLayout.getHeight()*arrWebView.size();
params.width = 7000;//mainLinearLayout.getWidth();
layout.setLayoutParams(params);
}
}
.layout
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/createConsentnote_root"
style="@style/rootlinear" >
<LinearLayout
android:id="@+id/mainLinearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:orientation="vertical"
android:scaleType="fitCenter" >
</LinearLayout>
</FrameLayout>
private void setWebviewInit(WebView webview, int pageNum) {
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(fm.displayWidth,fm.displayHeight);
param.topMargin = 30;
param.bottomMargin = 30;
webview.setLayoutParams(param);
// 기존 소스 - 삭제하지 말 것
// webview.setInitialScale(100);
// webview.getSettings().setLoadWithOverviewMode(true);
// webview.getSettings().setUseWideViewPort(true);
webview.setInitialScale(1);
webview.getSettings().setJavaScriptEnabled(true);
webview.setFocusable(true);
webview.setFocusableInTouchMode(true);
webview.setVerticalScrollBarEnabled(true);
webview.setHorizontalScrollBarEnabled(false);
webview.getSettings().setSupportZoom(true);
webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setDisplayZoomControls(false);
/** about Click over 2.3 **/
webview.setClickable(true);
webview.setFocusable(true);
webview.setLongClickable(true);
webview.setFocusableInTouchMode(true);
webview.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// if (csScrollViewMain.nMod == 1) {
if( ((DrawViewHandWriting) arrWebView.get(arrWebView.indexOf(v)).getChildAt(0)).nMod==1 ){
((DrawViewHandWriting) arrWebView.get(arrWebView.indexOf(v)).getChildAt(0)).x = event.getX();
((DrawViewHandWriting) arrWebView.get(arrWebView.indexOf(v)).getChildAt(0)).y = event.getY();
((DrawViewHandWriting) arrWebView.get(arrWebView.indexOf(v)).getChildAt(0)).draw(((DrawViewHandWriting) arrWebView.get(arrWebView.indexOf(v)).getChildAt(0)).mPath, event,0);
}
return false;
}
});