2016-03-07 14 views
6

TextView'un SpannableString kullanarak belirli sözcüklerine bir OnDragListener ayarlamaya çalışıyorum. Sürükle İşleyici'yi SpannableString üzerinde ayarlayın

hashText.setSpan(new ClickableSpan() { 

yaparak

ClickableSpan kullanarak bir OnClick Dinleyici eklemek mümkün Im Bu yüzden aynı deneyin ama OnDragListener ile ClickableSpan yerini alacak düşündüm.

Farklı sürükleme olaylarını okuyabiliyorum, ancak sürükleme olaylarını ClickableSpan ile yapabileceğimi seçtiğim belirli sözcüklere ayıramadım. Bu alanda büyük bir uzman değilim, asla kazmak zorunda kalmadım.

cevap

2

Fakat cevaplarınız olmadığı için size biraz ipucu/yön vermeye çalışıyorum.

İhtiyacınız olan şey bir özel MovementMethod olduğunu düşünüyorum.

android platformu MovementMethod bu paketin içinde burada yönetilir: https://github.com/android/platform_frameworks_base/tree/master/core/java/android/text/method

Özellikle bu arayüzü: bunu bir onTouchEvent() yöntemi vardır Gördüğünüz gibi https://github.com/android/platform_frameworks_base/blob/master/core/java/android/text/method/MovementMethod.java

.

ClickableSpan bir onClick yöntemi vardır, ama ClickableSpan arayan ve üzerlerinde onClick() veren dokunmatik olaylarını ele bir LinkMovementMethod var, çünkü sadece çalışır.

bakınız: uzatmak https://github.com/android/platform_frameworks_base/blob/master/core/java/android/text/method/LinkMovementMethod.java

: https://github.com/android/platform_frameworks_base/blob/master/core/java/android/text/method/BaseMovementMethod.java

uzatmak ama bu son gerçekten dokunuşlar ile ilişkili değildir https://github.com/android/platform_frameworks_base/blob/master/core/java/android/text/method/ScrollingMovementMethod.java

. Sana LinkMovementMethod uzatmak ve orada sürükle algılama ekleyebilir düşünüyorum https://github.com/android/platform_frameworks_base/blob/master/core/java/android/text/method/Touch.java

çok hızlı kod baktığımızda:

ScrollingMovementMethod kullanım sınıfı Touch dokunma olayı işleme temsilci, buradan bu sınıf görebilirsiniz. Sonra sürükleyin ve içindeki sürükleme yöntemlerini çağırın için yeni bir Span türü oluşturun.

Size bir çözüm vermediğimi biliyorum ama umarım sizi doğru yönde işaret ettim.

+0

Hey Geri bildirim için teşekkürler. Cevap olarak işaretlemiyorum çünkü mods ile bağırmak istemiyorum, ama çabalarınız için puan aldığınızdan emin olmak için devam ettim. Ben senin öneri ile biraz tinkered var, ama bu arada farklı bir yöne gittim. Ben zamanım var en kısa sürede önerilerinizi tekrar gözden geçireceğiz ve çözümünüzü cevabınıza göre ekleyeceğim. Tekrar teşekkürler – user1446988

+0

@ user1446988 hiçbir sorun arkadaşı, bulduğunuz çözümle kendi sorunuzu cevaplamayı düşünün, başkalarına ve hatta gelecekteki kendinize yardımcı olabilir. Önerimi denerseniz bana bildirin. –