Android WebView - 手势 - 拖动项目?

时间:2015-05-23 00:54:54

标签: android webview android-webview gesture netbeans-8

我正在使用WebView来显示网站。这部分工作基本没问题。

在普通浏览器(Chrome等)中查看实际网站时,您可以“左键单击”项目,然后在页面上拖动它们以重新排列它们。在使用WebView查看页面和Android设备时,这不起作用。

当您单击(并按住)WebView中的项目时,屏幕顶部会出现复制/剪切弹出窗口,当您尝试移动/滑动它时,只需垂直或水平滚动页面。

我不确定我需要添加什么才能使网站上发生的“click-n-drag”手势动作发生在WebView中。

此外,在网站版本上,如果您右键单击某个项目,则会显示上下文菜单。这部分适用于Android设备。如果单击某个项目,然后再次单击它将根据网站版本显示上下文菜单。这只是'click n drag'功能,我不确定如何实现......

任何建议都会很棒!

以下是代码。

ManiActivity.java

package org.webview.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // Initialize the myWebView object
        WebView myWebView = (WebView) findViewById(R.id.webview);

        // Zoom control - sets onsreen controls
        myWebView.getSettings().setSupportZoom(true);
        myWebView.getSettings().setBuiltInZoomControls(true);

        // Make webpage fit to screen size
        myWebView.getSettings().setLoadWithOverviewMode(true);
        myWebView.getSettings().setUseWideViewPort(true);

        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        // Force links and redirects to open in the WebView instead of in a browser
        myWebView.setWebViewClient(new CustomWebViewClient());

        // Make scroll bars visible
        myWebView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
        myWebView.setScrollbarFadingEnabled(false);

        // Web page to load in WebView
        myWebView.loadUrl(getString(R.string.url));

    }


    // Force links and redirects to open in the WebView instead of in a browser
        private class CustomWebViewClient extends WebViewClient {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url);
         return true; }

    }
}

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
/>

</LinearLayout>

的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="org.webview.test"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <activity android:name="MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

    <!-- Gives device access to internet-->
    <uses-permission android:name="android.permission.INTERNET" />

</manifest>

0 个答案:

没有答案