2017-06-29 5 views
-2

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); 
} 
} 

Répondre

0

Je veux un bouton pour répondre même si j'avoir un doigt sur un bouton non

Vous ne pouvez pas avoir que des conteneurs-cadres.

+0

Existe-t-il d'autres types de conteneurs qui permettraient cela? –

+0

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 –

+0

et comment pourrais-je commencer à faire cela? Quelles classes dois-je prolonger? –