SORU
2 EKİM 2009, Cuma


Nasıl yönlendirme devre dışı Android için değişiklik?

Ben tanımlıyorum, yani dikey modda kullanmak gibi bir uygulama var android:screenOrientation="portrait" manifest XML. Bu HTC magic cep telefonu (ve de diğer telefonları yönlendirme değişiklikleri engeller) için iyi çalışır.

Ama donanım qwerty klavye (sanal klavye) ben açık olarak HTC G1 telefonu ile ilgili bir sorun var. Benim etkinlik portre modunda kalır, ama yeniden almak gibi görünüyor ve tüm devletler kendi kaybeder. Bu kahraman sürümü ile olmaz.

Başvurum klavye açıldığında ve bütün devletler yeniden kaybetmek istemiyorum bu yüzden oldukça büyük. Bunu engellemek istiyorum nasıl herhangi bir fikir?

CEVAP
2 EKİM 2009, Cuma


Güncelleme Nisan 2013: bunu yapma. Ben ilk soruya cevap verirken, 2009 yılında da iyi bir fikir değildi ve gerçekten de iyi bir fikir değil. Nedenlerle hackbod bu cevaba bakınız: http://stackoverflow.com/a/5336057/84021

Senin androidmanifest.xml android:configChanges="keyboardHidden|orientation" ekleyin. Bu kendini - hiçbir şey yapmayarak bu durumda işlemek için neler sistemine bildirir.

<activity android:name="MainActivity"
     android:screenOrientation="portrait"
     android:configChanges="keyboardHidden|orientation">

Daha fazla ayrıntı için http://developer.android.com/reference/android/R.attr.html#configChanges bkz.

Ancak, uygulamanız gerçekten duraklatılmış zaman kodu uygulamanızın durumunu kaydetmek için eklemek gerekir, böylece herhangi bir zamanda, örneğin bir telefon görüşmesi, kesintiye.

Güncelleme:Olarak 3.2 de eklemek lazım Android "": . screenSize

<activity
    android:name="MainActivity"
    android:screenOrientation="portrait"
    android:configChanges="keyboardHidden|orientation|screenSize">

http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange:

Dikkat: Başına 3.2 (seviye 13 API), "ekran boyutu"Android cihaz anahtarları da değişiklikler dikey ve yatay arasında oryantasyon. Eğer çalışma zamanı yeniden nedeniyle önlemek istiyorsanız, böylece, API level 13 veya daha yüksek geliştirirken değiştirme yönü (as bu minSdkVersion ve targetSdkVersion tarafından bildirilen nitelikleri) """oryantasyon"yanında değeri screenSize içermelidir değer. Bunu bildirmeniz gerekir. android:configChanges="orientation|screenSize". Eğer ancak, uygulama hedefleri 12 seviye veya daha düşük API, sonra da etkinliği her zaman bu yapılandırma (bu yapılandırmayı değiştirmek kendini değiştirmek işler bir Android üzerinde çalışan bile etkinliği yeniden başlatın, 3.2 ya da değil daha yüksek cihaz).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BASS212M

    BASS212M

    15 Temmuz 2009
  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • Louis C.K.

    Louis C.K.

    18 HAZİRAN 2006