J'essaie d'avoir multi-touch dans mon application, mais le toucher des boutons et le maintien de l'écran ne fonctionnent pas ensemble. Je veux qu'un bouton soit réactif même si j'ai un doigt sur une partie non-bouton de l'écran. Cependant, le bouton ne fonctionne pas si l'écran est maintenu enfoncé et que l'écran ne fonctionne pas si le bouton est maintenu enfoncé. Ceci est quelque chose de similaire à mon code.android - cliquer sur un bouton et toucher l'écran ne fonctionnera pas ensemble
package com.example.amitjoshi.am6;
import android.graphics.Color;
import android.support.v4.view.GestureDetectorCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.view.MotionEvent;
import android.view.GestureDetector;
public class MainActivity extends AppCompatActivity implements
GestureDetector.OnGestureListener{
private TextView message;
private Button button;
private GestureDetectorCompat gestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout layout =
(RelativeLayout)findViewById(R.id.layout);
layout.setBackgroundColor(Color.RED);
RelativeLayout.LayoutParams buttonDetails = new
RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT
);
buttonDetails.addRule(RelativeLayout.CENTER_HORIZONTAL);
buttonDetails.addRule(RelativeLayout.CENTER_VERTICAL);
message = (TextView)findViewById(R.id.message);
button = (Button)findViewById(R.id.button);
this.gestureDetector = new GestureDetectorCompat(this, this);
button.setOnClickListener(new ButtonListener());
//gestureDetector.setOnDoubleTapListener(this);
}
private class ButtonListener implements View.OnClickListener{
@Override
public void onClick(View view) {
MainActivity.this.message.setText("Clicked");
}
}
@Override
public boolean onDown(MotionEvent motionEvent) {
//message.setText("onDown");
return false;
}
@Override
public void onShowPress(MotionEvent motionEvent) {
//message.setText("onShowPress");
}
@Override
public boolean onSingleTapUp(MotionEvent motionEvent) {
message.setText("onSingleTapUp");
return true;
}
@Override
public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) {
message.setText("Swiped");
return true;
}
@Override
public void onLongPress(MotionEvent motionEvent) {
//message.setText("onLogPress");
}
@Override
public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) {
message.setText("Swiped");
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
this.gestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
}
Existe-t-il d'autres types de conteneurs qui permettraient cela? –
Peut-être, parce que c'est faisable mais aucun système ne propose une telle fonctionnalité. Vous pouvez essayer d'écrire votre propre ** si ** cette fonctionnalité est vraiment nécessaire –
et comment pourrais-je commencer à faire cela? Quelles classes dois-je prolonger? –