问题标签 [orientation-changes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
372 浏览

java - 如何找出 AsyncTask 正在运行什么?

在我的一项活动中,我确实有多达六个不同的 AsyncTasks,它们可能在不同的事件上运行。所有 AsyncTask 都优雅地处理方向变化(至少我希望如此)。在 onRetainNonConfigurationInstance() 中,我确实返回了当前正在运行的 AsyncTask 的 AsyncTask 对象。稍后,在 onCreate() 期间,我需要找出从 getLastNonConfigurationInstance() 返回的 AsyncTask 对象。

我在所有 onPostExecute() 方法中使用 Activity 上下文来获取新活动(如果有新活动)。我在 StackOverflow 上找到了这个概念,并对其进行了一些修改,因为我不喜欢“在方向更改时垃圾运行任务”范例。希望这个概念是正确的。

在下面显示的代码中,您会发现两个不同的 AsyncTask。在 onRetainNonConfigurationInstance() 期间,我将返回当前正在运行的 AsyncTask。我的问题在 onCreate() 内。如何找出返回的对象?当方向改变发生时,AsyncTask 正在运行什么?

两个 AsyncTask 在许多方面都不同(此处未显示),因此我没有使用自己的扩展 AsyncTask 基础对象。

提前谢谢了。

0 投票
4 回答
5993 浏览

ios - iOS:如何确定 viewWillAppear 中的当前方向?

我有一个UIWebView我想加载不同的 URL,具体取决于它的纵向还是横向。我怎样才能弄清楚我当前的方向是viewWillAppear什么?

0 投票
6 回答
38675 浏览

android - 将片段分配给具有不同方向的 ActionBar 中的选项卡

我有 3 个片段和一个活动。我想启用选项卡并为 3 个选项卡中的每一个ActionBar分配一个。Fragment如何正确连接?

原帖

我有一个正在开发的应用程序,使用 Google I/O 应用程序作为指南。我已经在ActionBar. 他们似乎一直在工作,直到平板电脑的方向发生变化。例如,所有 3 个选项卡都有一个Fragment. 我可以在它们之间切换就好了,但是当我改变方向时,无论Fragment我最后一次查看什么都保持可见,但是单击选项卡不再改变视图......就像它们已经断开连接一样。正如预期的那样,回到原来的方向并不能“修复”它。

我已经研究过保存和恢复状态,但我不知道这些会有什么帮助。

编辑

模块级别:

我在活动中有这样的东西onCreate

TabListener这样的:

编辑这被删除

编辑

我已经移动了TabListener. 我没有将它作为一个单独的类,而是TabListenerActivity. 然后在SelectedandUnselected方法上我有类似的东西:

它仍然在做同样的事情。我真的不知道发生了什么。

0 投票
1 回答
2070 浏览

android - DialogFragment-Chain 之类的向导

嗨,Android 开发人员,

我尝试连续有两个 DialogFragment,所以当第一个被取消时,会弹出第二个。

这是我到目前为止所拥有的:

在我的活动中,我调用以下方法:

在我的 DialogFragment 中,我有以下代码来检测它将被取消:

回到我的活动中,我通过启动第二个对话框对此事件做出反应:

只要我在第一个对话框上没有方向更改,这就会完美地工作。当我有一个时,我收到以下错误:

java.lang.IllegalStateException:onSaveInstanceState 后无法执行此操作

此异常在“newFragment.show(getSupportFragmentManager(), “mySecondDialogTag”); 行引发。

我认为如何解决这个问题是手动关闭第一个对话框。我试过以下:

再次没有方向改变一切工作正常。当我在屏幕上显示第一个对话框时更改方向时,我在“firstFragment.dismiss()”行上得到一个 NullPointerException。

为什么会这样?为什么 FragmentManager 在方向更改后会忘记我的 DialogFragment 以及为什么我不能只显示第二个。Androidreferences 说:

您应该使用 show(FragmentManager, String) 或 show(FragmentTransaction, String) 将 DialogFragment 的实例添加到您的 UI,因为它们会跟踪 DialogFragment 在关闭对话框时应如何删除自身。

我确实使用 show,但它仍然无法正常工作。

任何提示都非常感谢!

干杯 Ali3n

0 投票
2 回答
1401 浏览

ios - AS3 iOS 防止“动画”方向改变

我正在使用 Flash CS5.5 开发 iOS 应用程序。我想让 ipad/iphone 停止为orientationChange 设置动画并直接更改它,这可能吗?

我认为这是一个解决方案,但它没有帮助AS3 - 仅 iOS 强制横向模式?.

0 投票
1 回答
1364 浏览

android - Android:在方向更改导致空列表后为 ListFragment 设置列表适配器

我正在尝试处理我的 Android 应用程序上的方向更改。我在方向改变后尝试为我的 ListFragment 设置适配器时遇到了问题。没有例外,但列表仍然是空的;它没有填充给定的数据。

我知道在方向更改时会重新创建整个活动。我还实现了一种将数据从旧方向传递到新方向的方法。我已经检查过,就在调用 ListFragment.setAdapter() 之前,数据的 ArrayList 不为空,并且它包含与以前完全相同的数据。我也确信我的自定义适配器类没有缺陷,因为它第一次完美地填充了列表。

另外,我的目标设备低于 3.0,所以我用android.support.v4.app.ListFragment它来实现我的 ListFragment。

这是我的 onCreate() 方法:

任何帮助,将不胜感激。

0 投票
2 回答
1701 浏览

android - 如何在关闭后重新显示警报对话框

大约一个星期以来,我一直在用头撞桌子。希望有人可以提供帮助。

这就是我想要做的。

  • 显示登录警报对话框。-- 最好我喜欢股票的外观,所以 alertdialog.builder 对我有用。我试过制作一个自定义对话框,但我似乎无法让按钮看起来正确。

  • 如果密码正确,则开始活动,但如果在取消或正确之前不重新显示对话框。

这听起来很简单,但我就是无法理解它。我的代码看起来很垃圾,我知道我一直在剪切和粘贴东西。

我最初是在每个不正确的密码之后调用 getpasswd 方法 oncreate 。Unfortuantley 改变方向时我的窗口泄露了。所以我尝试了这个 oncreatedialog 的东西,我不再有泄漏,但我无法在旋转之间保留我的 edittext 文本框,即使输入不正确,按下“ok”按钮后我也无法重新显示对话框。任何指针将不胜感激。

谢谢。

0 投票
1 回答
220 浏览

ios - 更改表格大小和方向位置

我想以编程方式创建一个表并根据更改方向对其进行更改。问题是,当我启动应用程序时,无论方向如何,表格总是出现在同一位置。

我不明白为什么方法 updateViewOnRotate 第一次被调用了 3 次。

代码都在一个类中,UIViewController。

0 投票
1 回答
2226 浏览

sencha-touch - Sencha Touch:删除一个项目,然后更新方向变化的视图等

感谢您的回复,看起来我们可能会到达某个地方。我创建了一个简单的新视图。见下文:

我希望在上面的视图中看到的是第一次加载和纵向,将有两个面板,顶部面板(黄色)和底部面板(蓝色)。当我正常旋转时,我仍然得到相同的效果。

但我所追求的是,​​当我旋转到横向时,顶部面板(黄色)被移除,底部面板(蓝色)填充其余空间。

然后,当我旋转回纵向时,我将两个面板恢复为它们的设计尺寸(flex:1)

使用上面的代码(在 chrome 中测试)发生的情况是顶部面板(黄色)保持在顶部,但高度略小,并且不会像应有的那样消失

无论如何,请注意我拥有的两个控制台跟踪命令,它们显示以下旋转读数:

第一次加载后,我旋转到横向,输出为:

L:风景

L:风景

试图删除不存在的组件。Ext.Container:remove 接受要移除的组件的参数。cmp.remove() 用法不正确。

L:风景

试图删除不存在的组件。Ext.Container:remove 接受要移除的组件的参数。cmp.remove() 用法不正确。

L:风景

试图删除不存在的组件。Ext.Container:remove 接受要移除的组件的参数。cmp.remove() 用法不正确。

当我旋转回纵向时,我得到以下输出:

L:风景

试图删除不存在的组件。Ext.Container:remove 接受要移除的组件的参数。cmp.remove() 用法不正确。

L:风景

试图删除不存在的组件。Ext.Container:remove 接受要移除的组件的参数。cmp.remove() 用法不正确。

P:肖像

P:肖像

因此,在横向旋转上查看它实际上是如何触发onorientationchange函数 4 次的,第一个没问题,其他三个有错误,因为第一个已经删除了它,所以这就是我相信的警告。

然后对于纵向的,我得到两个注册为横向调用,然后是两个点击注册纵向调用。

所有这一切都是通过一个动作完成的,所以这是否会以某种方式导致删除和添加代码无法按预期工作以及如何防止在旋转时方向被调用四次?

如果有人对此开发有任何想法,请随时加入。

感谢到目前为止的帮助 Si

0 投票
2 回答
3471 浏览

java - Handler().postDelayed() 在方向改变时发送多个意图

好的,我正在制作一个暂停 1.5 秒并且效果很好的启动画面,除了一件事。一旦timer启动,onCreate如果配置(方向)发生变化,则timer重置,然后最终结果是它启动了我的ParchmentActivity.java两次。

如何防止处理程序两次发送意图?

提前致谢!

完整代码可见@:https ://github.com/n00bware/android_apps_parchment

这是我的代码(来自示例http://www.anddev.org/novice-tutorials-f8/splash-fade-activity-animations-overridependingtransition-t9464.html):