问题标签 [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 回答
965 浏览

android - 更换方向后丢失的片段Android

我有一个在 onCreate 中加载片段(比如 Fragment1)的活动。当用户按下 Fragment1 中的按钮时,我将 Fragment1 替换为新的 Fragment,例如 Fragment2。问题在于,在 Fragment2 中更改方向时,将重新创建活动并显示 Fragment1 而不是 Fragment2。(因为我在 onCreate 中创建了 Fragment1)我怎样才能坚持 Fragment2 并在方向改变时保持其状态?

谢谢

0 投票
1 回答
2181 浏览

android - onConfigurationChanged(Configuration newConfig) 没有调用

在我的应用程序中,我只是覆盖了 onConfigurationChanged 方法,如下所示

但是在调用屏幕方向时不会调用它。

在清单中我的活动是这样的

0 投票
3 回答
1103 浏览

android - onConfigurationChanged 手机重启时出现空指针异常?

那么问题是,我有一个在主类里面有onConfigurationChanged的livewallpaper,

代码是

它运行良好,当手机处于开机状态时,但如果手机重新启动,则会发生崩溃

在我的手机 Nexus 4 和三星 Galaxy S2 上运行良好,手机重启时不会崩溃,但在其他一些设备上会崩溃。

这也发生在 LG-P990 上,我认为,当手机重新启动时,它没有方向信息,但我不知道为什么调用 onConfigurationChanged?

0 投票
0 回答
121 浏览

android - GridAdapter 在屏幕方向更改时显示 view0 而不是 view4

我有一个显示 6 个按钮的 a ,如下所示GridViewBaseAdapter

  • 肖像:

B11 B12

B21 B22

B31 B32

  • 景观:

B11 B12 B21

B22 B31 B32

一切都很好,直到我从横向切换回纵向。然后显示:

  • 肖像:

B11 B12

B21 B22

B11 B32

所以它显示了B11两次。当我单击它时,它仍然获得正确的位置 (4) 并崩溃,因为它找不到正确的按钮 ID。

这是适配器的代码:

这里有以下痕迹:GridInit肖像 - 好的。然后将方向更改为横向 - 仍然可以。然后回到肖像。它获得两次 View 。

0 投票
4 回答
2245 浏览

android - Android横向右到横向左事件

我现在想知道在重新绘制布局时是否有任何可能的方式来触发事件,因为直接从横向右方向切换到横向左方向的事件。

我尝试了 OrientationEventListener。问题是它触发速度很快。我正在做 UI 更改,它们发生在重新绘制景观之前,看起来很糟糕。

我可以在更改上添加一些延迟,但根据手机的不同,更改可能会持续或多或少。

对于 onConfigurationChanged,时机是完美的,但当然它只适用于纵向到横向或横向到纵向。

我的应用程序不能在此更改中暂停,因此不能选择使用 onPause、onStop 等。

所以我正在寻找一个类似于 onConfigurationChanged 的​​事件,它也涵盖从横向到横向的更改。

0 投票
2 回答
2018 浏览

android - 在屏幕旋转之前做点什么?

do_something()每当设备从纵向旋转到横向时,我都想这样做。

我已经<activity android:configChanges="orientation" >在我的清单中添加了。每当我onConfigurationChanged()旋转我的设备时都会调用它。它不会重新创建活动。

在我的onConfigurationChanged()功能中:

我的问题是,我不知道我能做什么then_fire_off_the_screen_rotation_as_normal()

我尝试过使用setRequestedOrientation(),但似乎不是用于此目的的功能:

当我传入ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED, ActivityInfo.SCREEN_ORIENTATION_SENSOR, 或ActivityInfo.SCREEN_ORIENTATION_USER时,Activity 仍未重新启动。(就像不打电话一样。)

当我通过时ActivityInfo.SCREEN_ORIENTATION_NOSENSOR,方向传感器关闭。(正如它所说。)

当我通过时,ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE活动被强制关闭AndroidRuntime:NullPointerException


(具体一点:这是因为在纵向布局中以编程方式添加了片段,但在横向布局中没有。在do_something()函数中,我将删除这些片段,因为它们在横向模式中不需要。)

0 投票
0 回答
408 浏览

android - 在 TabHost 中屏幕旋转时更改片段布局时出现异常

同事!我有一个例外,我不知道如何避免。我在 SherlockFragmentActivity 中使用 ViewPager 创建了 TabHost。TabHost 包含片段。

活动:

在 7 英寸设备上,我有 2 种布局用于 TabHost 的 FirstFragment,一种用于纵向和横向。当我旋转屏幕时,它必须更改布局。不幸的是,我无法重新创建活动,因为在这种情况下,我会丢失对话(DialogFragment)和其他长期进程的上下文,这些进程在旋转屏幕时在应用程序中可用。所以,1)我在 AndroidManifest.xml 中使用

2)覆盖Activity中的onConfigurationChanged()方法:

3) 和 FragmentPagerAdapter 中的 ovveride getItemPosition()-方法用于选项卡的重新布局。当我旋转屏幕时出现问题,它应该加载一个片段而不是两个面板布局的单面板布局:

当我将屏幕从单面板(纵向)布局旋转到两面板(横向)时,从来没有发生过这个问题,但总是相反。调用方法 mTab​​sAdapter.notifyDataSetChanged() 时抛出异常;在 onConfigurationChanged() 中。

谁能解释异常的原因以及将来如何避免它?也许还有另一种方式如何在旋转屏幕时提供更改选项卡的布局?

0 投票
0 回答
362 浏览

android - 屏幕方向更改后如何在 mediaPlayer 中继续广播流?

我正在使用一个简单的代码从这样的 url 流式传输广播:

但是当屏幕方向改变时,媒体播放器会停止一段时间并再次开始流式传输。我曾尝试使用 onConfigurationChanged 方法,但我很困惑如何才能在不暂停的情况下继续流式传输。

0 投票
2 回答
6127 浏览

android - 使用 Fragments 更改 Android 布局

我正在开发一个有两个片段的 Android 活动。Activity 有两种可能的布局,一种在 Portait,另一种在 Landscape。

我创建的片段运行良好,但是当我更改手机/平板电脑的方向时遇到了麻烦。

其中一个 Fragment 是ListFragment,带有一个 AsyncTask 来从 Web 加载列表数据。有了这个片段,我就没有问题了,因为我可以再次创建它。(虽然加载需要一段时间)。

另一个Fragment内部有一个 Google Map V2 片段:

onCreate我从以下方法创建片段FragmentActivity

onConfigurationChanged方法中,我有这个代码。如在 中onCreate,我创建了片段,并更改了视图,因为现在我们处于横向/纵向:

当我在此方法中创建 ListFragment 时效果很好,但不适用于 MapFragment。带有 MaponCreateView的 Fragment 方法中的应用程序崩溃。我想我不能再膨胀这个片段了:

04-16 18:20:32.795: E/AndroidRuntime(15543): android.view.InflateException: Binary XML file line #6: Error inflating class fragment

我的问题:

有没有办法在更改布局时避免重新创建片段?

我怎样才能做到这一点?

谢谢!

0 投票
1 回答
2212 浏览

android - Android VideoView 方向,如 Youtube 应用程序

我试图在我的应用程序中复制 Youtube 应用程序在播放视频时所做的事情。

纵向模式:仅使用 40% 的屏幕显示视频,其余部分显示有关视频的信息。

横向模式:以全屏模式显示视频和窗口。

我在堆栈溢出和其他论坛中看到了很多关于这个主题的帖子,但似乎没有一个适合我。目前,我的 videoplayeractivity 使用 android:configChanges="keyboardHidden|orientation|screenSize" 并且我已经使用以下代码覆盖了 onConfigurationChanged 事件:

这不会将应用程序置于全屏状态,如果我取消注释 requestwindowfeature 它将崩溃,因为“必须在添加内容之前调用 requestFeature()”。后来我尝试删除 onConfigurationChanged 事件和我尝试过的 onCreate 事件:

但是,如果我在纵向上启动活动然后翻转到横向,则会在 com.android.internal.policy.impl.PhoneWindow$PanelFeatureState.onRestoreInstanceState(PhoneWindow.java:3527) 处出现 NullPointerException 崩溃。有什么建议么?