2011-02-10 34 views
8

Her satırda numaralı bir EditText var. Bu etkinliğin bildiriminde windowSoftInputMode değerini adjustPan olarak ayarlıyorum, böylece bir EditText sayfa düzenine dokunduğumda klavyenin üstünde görünecek şekilde tavalar.EditText with ListView with windowSoftInputMode adjustPan

Bu, ilk kez bir EditText üzerine dokunduğumda çalışır. Ancak klavyeyi kapatmak için arka tuşa basarsam, o zaman aynı EditText'e tekrar dokunursunuz (başka bir şeye dokunmadan, imleç ilk EditText'da kalır), klavye tekrar açılır ancak düzen bu kez eğilmez. Bunun sonucu, EditText klavyenin arkasında gizlenmiş olmasıdır.

Bu davranışı deneyimleyen biri var mı/nasıl çözeceğini biliyor mu?

Teşekkür Yine

+0

bana bir hata gibi geldi! – Dori

cevap

8

bunun neden böyle emin değilim ama ben bir çözüm yok.

Ben EditText sınıflandırma ve aşağıdaki gibi bir yöntem onKeyPreIme(int keyCode, KeyEvent event) geçersiz kıldık: geri tuşuna basıldığında

@Override 
public boolean onKeyPreIme(int keyCode, KeyEvent event) 
{ 
    if(keyCode == KeyEvent.KEYCODE_BACK) 
    { 
     clearFocus(); 
    } 
    return super.onKeyPreIme(keyCode, event); 
} 

Şimdi EditText odağı vazgeçer. Sonra tekrar dokunmak istenen davranışa sahiptir.

+0

Teşekkürler Matt ... Android'deki tüm bu anormallikleri fark eden tek kişi ben değilim. Yine de genç ... Gelecekte API'ler sallanacak. Biraz zamanınız varsa, lütfen aldığım diğer hatayı kontrol edin: http://stackoverflow.com/questions/15267137/android-adjustpan-not-working-after-edittext-container-has-been-translated Çok teşekkürler – Houston

+0

Güzel hack. Çok teşekkürler :) –