【问题标题】:Orientation Change - Update UI方向更改 - 更新 UI
【发布时间】:2012-02-01 11:00:52
【问题描述】:

我在我的应用中使用加速度计的数据。如果设备的角度改变,屏幕方向应该改变。 为了改变方向,我有两种布局,一种用于纵向,一种用于横向。

当方向改变时,会调用一个函数来改变布局:

setContentView(R.layout.landscape);或 setContentView(R.layout.portrait);

这很好用,但我遇到了几个 UI 元素(如按钮或 ToggleButtons)的问题。 我在 onCreate 方法中为他们初始化了一个 onClickListener,每次方向改变时,我都会初始化一个新的 onClickListener。

很遗憾,我不能再更改 ToggleButtons 的状态了。

我该如何解决这个问题?

【问题讨论】:

    标签: android screen orientation landscape portrait


    【解决方案1】:

    您可以使用/layout-land/layout-port,手机会在改变方向时自动为您切换它们。见

    http://developer.android.com/guide/practices/screens_support.html#DesigningResources

    至于切换按钮,请参阅onRetainNonConfigurationInstance()

    http://developer.android.com/reference/android/app/Activity.html#onRetainNonConfigurationInstance%28%29

    【讨论】:

      【解决方案2】:

      正如上面 Bill Gary 所描述的,为什么不让系统为您处理方向变化呢?此外,当您执行此操作时,标准系统小部件应自动保留其状态。如果需要,请参阅 here 了解为什么以及如何管理自定义状态。

      【讨论】:

      • 我不希望系统改变方向。我有特定的方向变化值。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 2015-01-17
      相关资源
      最近更新 更多