u011732740
SaluteWarmTinct
采纳率85.7%
2015-05-08 01:22

webview加载页面后form表单的位置不对,点了几下屏幕就又好了

已采纳

图片说明
下边是我的MainActivity.java以及布局,跪求大牛指导。

android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<ImageView
    android:id="@+id/wordpress_logo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="-60dip"
    android:adjustViewBounds="true"
    android:background="@drawable/loading2"
    android:paddingLeft="20dip"
    android:paddingRight="20dip"
    android:scaleType="centerInside" /> 

<WebView 
    android:id="@+id/eshetong_wv"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"/>


public class MainActivity extends Activity {
private WebView webView;
private ImageView img;
String url = "http://sttuolian.wicp.net:8086";
private Dialog myDialog;

@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activitymain);

    webView = (WebView) findViewById(R.id.eshetong_wv);
    img = (ImageView) findViewById(R.id.wordpress_logo);

    WebSettings webSettings = webView.getSettings();
    // 支持JS
    webSettings.setJavaScriptEnabled(true);
    // 将图片调整到适合webView的大小
    webSettings.setUseWideViewPort(false);
    // webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
    // 支持缩放
    webSettings.setSupportZoom(true);
    webSettings.setBuiltInZoomControls(true);
    // 可以访问文件
    webSettings.setAllowFileAccess(true);
    // 支持通过JS打开新窗口
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
    // 支持自动加载图片
    webSettings.setLoadsImagesAutomatically(true);
    // 使滚动条不占位
    webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

    webView.setWebViewClient(new WebViewClient() {

        @Override
        public void onReceivedError(WebView view, int errorCode,
                String description, String failingUrl) {
            view.stopLoading();
            view.clearView();
            Message msg = handler.obtainMessage();
            msg.what = 1;//
            handler.sendMessage(msg);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
        }

          @Override
          public void onPageFinished(WebView view, String url)
          {
              img.setVisibility(View.GONE);
              webView.setVisibility(View.VISIBLE);
                  super.onPageFinished(view, url);
          }
    });
    webView.loadUrl(url);


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // TODO Auto-generated method stub
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    // TODO Auto-generated method stub
    if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
        webView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

protected Handler handler = new Handler() {
    public void handleMessage(Message message) {
        if(message.what==1){
            webView.stopLoading();  
            webView.loadUrl("file:///android_asset/error.html");
        }else{
            myDialog.show();
        }
    }
};

}


  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • u011732740 SaluteWarmTinct 6年前

    自己解决了,来补一下答案吧。
    图片说明
    图片说明
    我在layout里加了个全屏的图片,本来是用来遮挡webview加载时因为网速慢造成的延迟闪烁的。结果就出现了这种情况。至于为什么因为有个图片就有了这个,本菜鸟也不知道,等大牛告知吧!!

    点赞 评论 复制链接分享
  • u011794730 Luffy_Q 6年前

    有可能是你在其他地方也对表单的位置做了调整

    点赞 评论 复制链接分享