Android 在webview上滚动不起作用

Android 在webview上滚动不起作用,android,webview,Android,Webview,我在我的4.1.2 Android上有一个webview,我用它加载 public class FullscreenActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fullsc

我在我的4.1.2 Android上有一个webview,我用它加载

public class FullscreenActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_fullscreen);


        final WebView wv=(WebView)findViewById(R.id.webView1);

        String sHTML="Webviewtest";
        for(int i=0;i<500;i++){
            sHTML=sHTML+"Line " + i + "<br>";
        }

        wv.loadData(sHTML, "text/html", null);
        wv.setScrollY(1500);

        wv.setWebViewClient(new WebViewClient() {

             @Override  
             public void onPageFinished(WebView view, String url) {
                 super.onPageFinished(view, url);
                 wv.setScrollY(500);
                 Toast.makeText(getApplicationContext(), "Done! " + wv.getScrollY(), Toast.LENGTH_SHORT).show();

             }  

             });
    }
}
公共类FullscreenActivity扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_全屏);
最终WebView wv=(WebView)findViewById(R.id.webView1);
字符串sHTML=“Webviewtest”;

对于(int i=0;i我的解决方案。我不喜欢它,但它可以工作。所有这些混乱都是因为android框架,它不能像预期的那样工作

我添加了一个异步任务:

private class Waitforloaded extends AsyncTask<String, Integer, Long> {


         protected void onProgressUpdate(Integer... progress) {

         }

         protected void onPostExecute(Long result) {

         }

        @Override
        protected Long doInBackground(String... params) {
            // TODO Auto-generated method stub
            boolean bgo=true;
            int iTries=0;
            while(bgo){
                iTries=iTries+1;
                if(iTries>20 || wv.getContentHeight()>0){
                    bgo=false;
                }
                try {
                    Thread.sleep(20);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            wv.setScrollY(1500);
            return null;
        }
     }

这次不是安卓的错,它为我们提供了另一种方法。
尝试:


你为什么在结尾调用
super.onPageFinished(view,url);
呢?你有没有试过在开头调用它。而
setscroly
是一个API级别14的调用。你是在一个API级别14的设备上吗?我在开头和结尾都试过了。没有成功。是的,我的设备是API14。调试时我也能看到这一点。
wv.setWebViewClient(new WebViewClient() {

             @Override  
             public void onPageFinished(WebView view, String url) {
                 super.onPageFinished(view, url);

                 Waitforloaded wfl=new Waitforloaded();
                 wfl.execute("");


             }
public void onPageFinished(WebView v, String url) {   
 v.evaluateJavascript("window.scrollTo(0,"+expectedPos/a.getResources().getDisplayMetrics().density+");", null);
 super.onPageFinished(v, url);
}