【问题标题】:How to know whether the Orientation of the screen have changed or not when extends an AppWidgetProvider?扩展 AppWidgetProvider 时如何知道屏幕的方向是否发生了变化?
【发布时间】:2012-01-09 13:01:49
【问题描述】:

我正在尝试为支持 ICS 的设备创建 WiFi 小部件。支持 ICS 主屏幕方向,因此在更改方向时,我的小部件变为非活动状态(挂起)。通过研究,我发现我们需要在改变方向的同时重新分配 remoteView。如何判断方向是否改变? 如果我正在扩展活动,那么我有覆盖方法 onConfigurationChanged,但在这里我正在扩展 AppWidgetProvider。我该如何解决这个问题。

提前致谢。

【问题讨论】:

  • 您不需要在方向更改时更新 RemoteViews。 RemoteViews 只是应用于小部件布局的一系列命令。当方向改变时,小部件容器会重新创建布局(如果您使用 res/layout-land,可能会使用替代布局和值)并将 RemoteViews 命令应用于它。试试这个,让你的手机横屏并将你的小部件添加到主屏幕,如果它没有显示,那么你在某个地方有问题。

标签: android widget wifi


【解决方案1】:

创建一个应用程序来覆盖onConfigurationChanged 方法:

public class WifiApp extends Application {
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    //here u can check the ori
}
...

【讨论】:

  • 这会告诉您设备方向是否改变或家庭方向是否改变? (由于可以禁用家庭方向更改,因此它们不一样)。我认为 OP 需要后者。
猜你喜欢
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 2011-03-19
  • 2021-07-04
  • 2018-06-10
  • 2021-12-09
  • 1970-01-01
  • 2019-09-14
相关资源
最近更新 更多