2017-09-22 4 views
1

Ich habe einfache SeekBar basierte Schieberegler für die Lautstärkeregelung implementiert (so sollte es glatt ziehbar sein). Seltsam ist, dass mit meinem vollständigen Code nicht gezogen werden kann - ich kann nur einen einzigen Klick nach links oder rechts vom Daumen machen.Android SeekBar nicht unter bestimmten Bedingungen ziehbar

Dann entferne ich etwas Code, der keine Beziehung zu der SeekBar selbst hat - und es beginnt zu arbeiten! Ich verwende setProgress() auch zu keinem Zeitpunkt, außer dass der Anfangswert gesetzt wird.

So unabhängig von meinem Code, gibt es etwas, das verhindert, auf Drag-Ereignisse zu reagieren. Irgendwelche Ideen, um zu schauen?

Android 7.0

+0

Wäre hilfreich, wenn Sie Ihren Code im Zusammenhang mit dem Suchwort und dem Code, den Sie sagen, veranlassen könnten, dass die Suchleiste wieder funktioniert –

+0

Es ist praktisch nicht möglich, weil es um Klassen herum verteilt ist. Was ich herausgefunden habe ist, dass ich den "onProgressChanged()" Handler auskommentiere, dann funktioniert alles wie erwartet. –

+1

Machst du da viel Zeug oder Sachen, die zu viel Zeit brauchen? Wenn Sie dies tun, blockieren Sie möglicherweise den UI-Thread. –

Antwort

2

Das Problem war in meinem Code: SeekBar Änderung Hörer genannt notifyObservers(), einer von ihnen das Fragment war, die die SeekBar enthielt. Schlimmer noch, Seekbar war eine View, die in die RecycleView platziert wurde. Offensichtlich löschte das Aufrufen von notifyDataSetChanged() irgendwie alle aktuellen Ereignisse.

Verwandte Themen