问题标签 [onconfigurationchanged]

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 投票
1 回答
505 浏览

android - 更改语言环境后活动完成

我已经Activity A和它打电话了Activity B。在清单 Activity A 中有 configChanges android:configChanges="locale|orientation|screenSize"

在活动 A 中 - 用于更改语言环境

  • 用于启动活动 B

    Intent intent = new Intent(this, B.class); 开始活动(意图);

如果我启动 Activity A 并更改语言环境,一切正常。但是,如果我尝试启动 Activity A,然后启动 Activity B,然后转到 Activity A 并更改语言环境,Activity A will not be restarted, it will be destroyed. 如何防止 Activity A 被破坏?

0 投票
0 回答
394 浏览

android - Android:在方向改变时启动新活动,而不重新创建旧活动

当用户将设备设置为横向而不更改旧活动的方向时,我需要启动新活动。

所以,我有 2 项活动:

  • (1) 仅纵向的旧活动
  • (2) 仅限横向的新活动

应用场景如下所示:

  • 用户处于 (1) 纵向模式下的旧活动中
  • 用户放置他的设备景观,我需要开始(2)新活动
  • 用户在 (2) 新活动中并按下返回按钮。我需要完成新的 (2) 活动并返回 (1) 应该仍处于纵向的旧活动(即使设备处于横向)。

知道如何实现这一目标吗?

0 投票
3 回答
3693 浏览

android - 多次调用 FragmentTransaction.replace() - 方向改变后只有一个有效

我正在使用以下代码用 2 个片段填充我的 UI,容器是FrameLayout在 XML 中定义的。这是第一次调用此代码,即当应用程序启动时,它工作正常,并且我的两个片段都按预期显示。但是,在配置更改(特别是方向)之后,仅显示事务中的第一个片段。

我认为这不是片段本身的问题,因为如果我反转代码以便在另一个之前调用一个替换,反之亦然,将显示该片段。因此,例如,以下面的代码片段为指导,如果我交换 mSummary 和 mDetails 替换调用,则将显示 mDetails 而不会显示 mSummary。

丢失的总是块中的第二个。

我正在保存片段并从重新创建活动时onSaveInstanceState恢复它们。Bundle savedInstanceState我还尝试通过调用commit()然后获取另一个FragmentTransaction对象将事务分成两部分,但那里没有乐趣。

0 投票
2 回答
1015 浏览

android - onConfigurationChanged 为方向重新排列布局

我有一个图像查看器应用程序,可以处理具有大量缓存的非常大的图像。当用户旋转设备时,如果应用程序完全重新启动,则会导致打嗝。

如果我禁用方向更改,则设备旋转是无缝的,但我有一个侧边栏,横向和纵向方向不同。禁用方向更改后,侧边栏将保持之前的状态,占用大量空间。

有没有一种方法可以让布局方面在不完全重新启动活动的情况下更新旋转?


编辑(更多信息)


我正在添加更多信息以使我的原始问题更清楚,以便我回答。布局是这样的:

V = 查看器 S = 侧边栏

侧边栏是同一个片段,但是它根据方向使用不同的布局。我最初的尝试是复杂的多布局设置。当我允许活动在方向更改时重新启动时,这工作正常。但是,由于我不想重新发布所有繁重的工作(或添加实例节省开销),我需要找到一种方法来调整方向更改的布局,而无需完全重新启动。

0 投票
1 回答
52 浏览

android - 接收 ConfigurationChange 但*不*“旋转”应用程序

想象一下我的应用程序显示了一个以纵向模式绘制的房子:

上面的星星代表我的一些菜单。下面的圆点代表android的软件背部、应用程序和主页按钮线。轮换后我想要的是:

并不是

哪种是自动发生的。

所以基本上,我希望我的应用程序能够确认设备旋转(而不是阻止横向或纵向模式),因此系统的按钮可能会转到它们各自的位置, 我不希望我的应用程序的视图被旋转或重新缩放或有任何动画。

我怎样才能做到这一点?声明我的应用程序来处理配置更改会阻止活动重新启动,但是如果我在onConfigurationChange视图上什么都不做,无论如何都会重新缩放和重绘,而无需我为其编写任何代码。

总而言之,我想了解配置更改,但要防止我的应用程序可视化中的任何(系统)更改(我想自己设置一个自定义动画)。

0 投票
2 回答
152 浏览

java - initLoader - 如何处理配置更改?

我正在尝试在我的项目中使用 commonsware 的LoaderEx。所以我测试了 LoaderExDemo项目。它工作正常。但是当我将设备从纵向模式更改为横向模式时,加载器变量将是null.

onCreate方法中,我们初始化加载器,如下所示

那么为什么loader在配置更改时不初始化?那么如何解决这个问题?

Logcat 报告

谢谢

0 投票
2 回答
1853 浏览

java - Usage of onSaveInstanceState function with arraylist

I have a ToDoItem.java class and in my mainActivity class i have an arraylist in type of ToDoItem. I mean i have a "ArrayList(ToDoItem) listItems". I want to protect my arraylist in case of any configuration change. For this reason i want to use onSaveInstanceState function but in outState.(...) part i couldn't find any suitable function for my arraylist type. Can someone help me about how to save my arraylist? Thank you in advance.

Here is the code that i tried:

logcat when i use outState.putSerializable("datas2", listItems):

0 投票
0 回答
207 浏览

onconfigurationchanged - onConfigurationChange 永远不会被调用

所以我有简单的代码,我只想在屏幕方向改变时改变布局。

我的清单是

因此,当我在模拟器上尝试此操作并在 num 上使用 ctrl+f12 或 9 和 7 时,屏幕翻转但没有任何反应,并且我的布局保持不变,它不会工作。就像永远不会调用 onConfigurationChange 并且永远不会到达 System.out.println 。

0 投票
0 回答
174 浏览

android - configurationChange之后,fragment中的listView会被初始化

基本上,我有 3 个片段:一个片段有 listView 和 editText,另外两个片段在线性布局中有添加和清除按钮,水平方向和另一个垂直方向。

当配置发生变化时,它应该调用onConfigurationChanged()方法,该方法会动态改变布局并替换片段。

问题是这样的:旋转后,listView中的数据被初始化,旋转前添加的所有项目都消失了。

我尝试使用该setRetainInstance()方法,但仍然无效。

这是我的代码

MainActivity.java

MyListFragment.java

0 投票
1 回答
325 浏览

android - 片段自适应 UI(典型的两片段新闻阅读器)- 在双窗格模式下缺少第一个片段

我正在尝试使我的应用程序适应 Adaptative UI Flows 示例,但我遗漏了一些东西,我不知道它是什么。正如您将在下面看到的,NewsListFragment 加载其布局取决于设备是处于纵向还是横向模式,并且由于我没有手动处理配置更改,因此从纵向到横向会更改此类布局。

预期行为:当布局为纵向时,仅显示列表。当布局为横向时,同时显示列表和 web 视图。

实际行为:当布局为纵向时,仅显示列表。但是,当布局为横向时,NewsListFragment 消失了,这似乎没有任何意义,因为我为它设置了固定宽度,并且它的高度设置为 match_parent。

新闻列表片段:

公共类 NewsListFragment 扩展 ListFragment 实现 OnRefreshListener {

新闻阅读器活动:

值土地/layouts.xml:

值/layouts.xml:

news_double_pane.xml:

news_single_pane.xml: