簡體   English   中英

當屏幕方向改變時,android-Listener丟失

[英]android- Listener lost when screen orientation changes

我有一個ListFragment ,單擊它會打開一個Activity 現在,我的問題是旋轉屏幕時聽眾會迷路。 點擊事件不響應。 我嘗試了android:configChanges ,它解決了偵聽器問題,但是整個活動的布局看起來很奇怪。 有什么可能的解決方案可以在配置更改時再次設置偵聽器?

最佳解決方案:使用onSaveInstanceState()處理問題的更好方法。請參見此鏈接處理運行時更改

No.2:您可以檢測到更改,然后通過以下方法進行處理:

public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);

// Checks the orientation
if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
    Toast.makeText(this, "landscape mode", Toast.LENGTH_SHORT).show();
} else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){
    Toast.makeText(this, "portrait mode", Toast.LENGTH_SHORT).show();
  }
}

強制解決方案:如果您不想在方向改變時回收活動生命周期,則可以在清單中添加:

<activity android:name=".YourActivity"
      android:configChanges="orientation|keyboardHidden"
      android:label="@string/app_name">

最后一個是最糟糕的解決方案,但是可行。 正如我的建議,不要使用最后一個,因為將來您將無法進行任何形式的回收利用。 但是對於緊急解決方案來說,它是有好處的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM