2017-11-05 3 views
0

Ich habe eine HorizontalScrollView in XML hinzugefügt und ich möchte das Scrollen beim Klicken auf die Schaltfläche deaktivieren und bei einem anderen Klick erneut aktivieren.Wie kann ich das Scrollen mit HorizontalScrollView beim Klicken auf die Schaltfläche deaktivieren und bei einem anderen Klick erneut aktivieren?

Deaktivierung des Bildlaufs mit Klick auf die Schaltfläche funktioniert, aber ich weiß nicht, wie ich das Bildlauf erneut aktivieren kann.

Der folgende Code zeigt, wie das Deaktivieren des Scrollens funktioniert.

class OnTouch implements View.OnTouchListener 
{ 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return true; 
    } 
} 

I hinzugefügt, um die obige Klasse und dann

final HorizontalScrollView scrollView = (HorizontalScrollView)findViewById (R.id.horizontalScrollView); 
    Button stop = (Button)findViewById(R.id.stop); 
    stop.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      scrollView.setOnTouchListener(new OnTouch()); 
     } 
    }); 

I den obigen Code innerhalb onCreate Methode zugegeben. Ich möchte eine weitere Schaltfläche hinzufügen (vielleicht "scrollen") und ich möchte, dass diese Schaltfläche das erneute Scrollen ermöglicht.

Antwort

1

Wie wäre es damit (ich habe es nicht getestet, also könnte es Tippfehler geben);

class OnTouch implements View.OnTouchListener { 
    public boolean intercept = false; 
    @Override public boolean onTouch(View v, MotionEvent event) { 
     return intercept; 
} } 

final OnTouch listener = new OnTouch()); 
final HorizontalScrollView scrollView = (HorizontalScrollView)findViewById (R.id.horizontalScrollView); 
scrollView.setOnTouchListener(listener); 
Button stop = (Button)findViewById(R.id.stop); 
stop.setOnClickListener(new View.OnClickListener() { listener.intercept=true}); 
Button start = (Button)findViewById(R.id.start); 
start.setOnClickListener(new View.OnClickListener() { listener.intercept=false}); 
+0

es funktionierte! Danke vielmals!! – ria

0

1 - In der onClickListener Funktion zu Ihrem Button verbunden:

a) scrollView.setOnTouchListener(new OnTouch()) entfernen,

b) Umschalten ein boolean (scrollEnabled zum Beispiel) Scrollen, um anzuzeigen, ob oder nicht aktiviert ist.

2 - Ihre ScrollView Klasse, überschreiben die onTouchEvent Funktion und setzen diese in ihm:

if(scrollEnabled){ 
     return(false); 
    else { 
     return(true); 
    } 
Verwandte Themen