2016-03-22 16 views
0

Ich habe eine (benutzerdefinierte) SeekBar geschachtelt in RelativeLayout und LinearLayout, die als Element einer ListView angezeigt wird. Jetzt, sobald ich ein TextView (über setText) in onProgressChanged aktualisiere, erhalte ich eine und meine Bewegung/Ziehen auf dem SeekBar wird annulliert. Funktioniert einwandfrei, wenn die TextView nicht aktualisiert wird.SeekBar Verschieben/Ziehen funktioniert nicht

Irgendeine Idee, was ist das Problem?

Inhalt von layout.xml:

<LinearLayout> 
    <LinearLayout> 
     <RelativeLayout> 

      <TextView /> 

      <SeekBar /> 
     </RelativeLayout> 
    </LinearLayout> 
</LinearLayout> 

-Code in benutzerdefinierten SeekBar:

@Override 
public void onProgressChanged(SeekBar seekBar, int progress, 
     boolean fromUser) { 
    if (fromUser) { 
     mProgressTextView.setText(String.valueOf(progress)); 
    } 
} 

By the way: Das Problem bei Android tritt nur 6. funktioniert auf prvious Versionen.

+0

können Sie Ihren Code setzen –

+0

haben Sie Ihren Fortschrittsparameter mit mehreren überschreiben und dividieren durch inkreameProgressBy Wert. Wie Fortschritt = Fortschritt/incrementProgressBy; –

+0

Art von. Der Zweck dieser SeekBar ist, eine Temperatur zwischen 16 und 28 Grad in Schritten von 0,5 Grad auszuwählen. Der Wert/Fortschritt der SeekBar liegt also in [0, 12], was der Temperatur zugeordnet und in der Textansicht angezeigt wird. Der Fortschritt selbst wird nicht manipuliert – GeneralOfTheFelixLegions

Antwort

0

Es ist ein bisschen spät, aber ich hatte auch ein Problem mit einem SeekBar in einem ListView ein MotionEventACTION_CANCEL empfängt, wenn sie auf einer Stufe der SeekBar bewegen und Ankunft ohne die Berührung loslassen.

Das Problem war, dass ich einige Daten geändert und rief notifyDataSetChanged auf dem Listenadapter jedes Mal die SeekBar namens onProgressChanged.

LÖSUNG: vermeiden notifyDataSetChanged in onProgressChanged Aufruf, Ihre Daten und notifyDataSetChangedonStopTrackingTouch Ihrer SeekBar.OnSeekBarChangeListener in der Funktion aufrufen, ändern.

HINWEIS: in meiner Liste Adapter ändere ich auch den Text von TextView in jedem Anruf von onProgressChanged und es verursacht keine Probleme.