Çocuk görüşlerinden birinin (bir ImageButton) tıklatıldığında arka plan rengini değiştirmek istediğim bir LinearLayout var. Bunu yapabilirim, ancak hemen değil - değişiklik daha sonraya kadar ekranda görünmüyor (bir onResume çağrısı sırasında düşünüyorum). Bir sonraki kod satırı yürütmeden önce, düzenin arkaplan ayarlandıktan sonra yeniden çizilmesinin nasıl zorlanacağını öğrenmek istiyorum.Bir sonraki kod satırı yürütülmeden hemen önce görüntünün yeniden çizilmesine zorlama
public void onClick(View v) {
LinearLayout parentLayout = (LinearLayout) v.getParent();
parentLayout.setBackgroundResource(R.color.my_color);
SystemClock.sleep(1000); //ms
}
uyku komutu yeniden çizme başında veya sonunda olur olup olmadığını test etmek içeride: İşte düğmesine uygun OnClickListener onClick yöntemidir. Sonuç: sonra. Bu konuyla ilgili çoğu soru (here ve here gibi), görünümde invalidate() yönteminin kullanılmasını söyler. Arka plan ve uyku çizgileri arasında parentLayout.invalidate();
, parentLayout.postInvalidate();
ve parentLayout.refreshDrawableState();
komutlarını kullanıyorum, bunların hepsi boşuna. Yeniden çizme hala uyku komutundan sonra gerçekleşir. Bana hemen nasıl yapıldığını söyleyen var mı?
Diğer olası yararlı bilgiler: LinearLayout bir ListView satırına bağlıdır ve yukarıdaki OnClickListener, etkinliğin kendisinde değil, SimpleCursorAdapter öğesini genişleten bir özel sınıftadır. (Bu şekilde ListView'deki her satır için bir dinleyici ayarlayabilirim.)
Bunun için tam cevabı alamayacaksınız, en azından bir tane bulamadım. Bize niçin yeniden çizilecek görüşe ihtiyacınız olduğunu söyler misiniz? Sorunu çözmek için başka çözümler de olabilir. – manjusg
@manjusg Yapmaya çalıştığım şey, normal olarak bir görünümün arka plan seçicisiyle xml olarak yapılıyor (arka plan, geri çağrılmadan önce sağa doğru basıldığında arka arkaya kısaca değişir), ancak farklı bir görünümün arka planını değiştirmek istiyorum. basılan düğme - yani düğmeyi içeren düzen ve ayrıca bir metin görüntüsü. – pvans
@manjusg Liste görünümümün satırları metin ve silme düğmesi içeriyor, ve metin görünümü de dahil olmak üzere tüm satırın, silinmeden ve kaldırılmadan önce kısaca vurgulanması istiyorum. Böylece, kullanıcının demek istediği sıra. Belki de xml'de bir seçici ile bağlantı görünümlerini geçmenin bir yolu var mı? – pvans