2010-11-19 17 views
5

İnternet üzerinden birkaç saatliğine cevap ararken tedirgin oldum, ancak bunu çözebilecek kişiyi bulamıyorum.Android ListeBu tıklanabilir öğelerin bulunduğu satırlar, satır başı kaydırma yapmaya devam ediyor

Özel bir bağdaştırıcı kullanan bir liste görünümüm var. Bir satır listesi bir dizi ile doldurulur bu

alt text

benziyor. Her şey harika çalışıyor.

Şimdi, ImageView ve ToggleButton'un tıklamaya tepki vermesini istiyorum; bu nedenle, adaptörümdeki OnClickListener'ı uygularım, her bir görünümün etiketine öğeler konumunu koyuyorum ve sonra onclicklistener'ı buna ayarladım.

Harika çalışıyor, şimdi hariç, onListItemClick öğesinin bir etkinliğini başlatmak için kullanamıyorum! Tamam, sadece ortadaki metni tutan göreceli görüntüyü aynı onclicklistener kullanıyor. Harika çalışıyor. Her şey tıklanabilir ve hayat iyi.

HARİÇ! Şimdi, listeyi kaydırdığımda, kaydırma işlemini tekrar yaparak devam edemem. Bu, kaydırma işleminin durmasına neden oluyor ve bir daha gitmesi için bir kez daha kaçmam gerekiyor. Bu, tıklatma hareketinin bir dokunuş veya bir şey olarak yorumlanmasına neden olan onclick-thingy gibi görünüyor (onClick'te mantığı tetiklemez).

Bunun, uyguladığımdan tam olarak istediğiniz düzen ve davranışa sahip olan HTC Hero'mdaki telefon listesine gidip bunu yapabildiğini biliyorum. Bu uygulama, onItemClickListener'ın çalışmasına sahip bile görünüyor.

Peki, listenin ilerlediğinden nasıl emin olabilirim ve yine de geçiş düğmesine, liste öğesine ve resim görünümüne tıklayabilir miyim? Bu tüm gün sıkışıp kaldım ve bu bana baş ağrısı :(

cevap

16

Eve Bir başka hızlı arama gitmeden önce veriyor ve bu rastladım:

How to fire onListItemClick in Listactivity with buttons in list?

CodeFusionMobile android:descendantFocusability ayarı bahseder "blocksDescendants" liste düzeni malı ve bu yüzden bunu yaparken çalıştı. Şimdi Her şey beklendiği gibi çalışır. Kaydırma işleri, onListitemClicked işleri, ImageView eser tıklayarak, ToggleButton eser tıklayarak.

Jus t Bunu açıklığa kavuşturmak için ... row.xml'un en üstündeki RelativeLayout numaralı telefondan