나는 WebView와 페이지 상단에 메뉴가있는 앱을 만들고 있습니다. 그 메뉴를 보이지 않게하고 버튼을 클릭했을 때만 나타납니다. 그 괜찮 았는데 그 버튼이 어디서나 멋지게 그래서 내가 대신 화면에 두 번 탭하면 나타납니다 버튼을 클릭했다 그것을 만들 수 없습니다 적합하지 않았다. 그래서 여기에 문제가 있습니다. 두 번 탭하면 빈 공간에서만 작동하지만 WebView에서는 작동하지 않습니다. 내가 어떻게하면 화면을 두 번 누를 때마다 나타나거나 사라지게 될까?안드로이드 - 더블 탭 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