2
我正在使用WebView和頁面頂部的菜單創建應用程序。我讓這個菜單不可見,只會在點擊一個按鈕時出現。這工作正常,但該按鈕無法適應任何地方很好,所以而不是點擊一個按鈕,使得當你雙擊屏幕時,菜單會出現。 所以問題在這裏。雙擊僅適用於空白空間,但不適用於WebView。我如何讓它工作,所以每當我雙擊屏幕時它會出現/消失?Android - 雙擊WebView檢測
public class MainActivity extends Activity implements OnGestureListener{
private WebView webView;
LinearLayout toolbar;
private GestureDetector gd;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
webView =((WebView)findViewById(R.id.webView1));
webView.setWebViewClient(new WebViewClient());
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setVerticalScrollBarEnabled(true);
webView.loadUrl("URL_HERE");
gd = new GestureDetector(this);
gd.setOnDoubleTapListener(new OnDoubleTapListener()
{
@Override
public boolean onDoubleTap(MotionEvent e)
{
LinearLayout toolbar= (LinearLayout)findViewById(R.id.toolbar);
if(toolbar.getVisibility() == View.GONE){
toolbar.setVisibility(View.VISIBLE);
}
else {
toolbar.setVisibility(View.GONE);
}
return false;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e)
{
return false;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e)
{
return false;
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
return gd.onTouchEvent(event);//return the double tap events
}
@Override
public boolean onDown(MotionEvent e)
{
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
return false;
}
@Override
public void onLongPress(MotionEvent e)
{
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
{
return false;
}
@Override
public void onShowPress(MotionEvent e)
{
}
@Override
public boolean onSingleTapUp(MotionEvent e)
{
return false;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
任何幫助將不勝感激。
你先生剛纔救了我的命。有用。謝謝。 – Izak
不要提到:)你能將我的答案標記爲正確答案嗎? –
這確實是一個非常好的解決方案,如果用戶在webview上的輸入字段中單擊並在鍵盤上鍵入,如何捕獲事件? – Karoly