问题标签 [android-configchanges]
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.
android - 如何重用 setContentView 中设置的布局?安卓
我正在尝试android:configChanges="keyboardHidden|orientation|screenSize"
在我的清单中使用,以便在VideoView
发生配置更改时不会丢失我的状态。这意味着我需要自己在配置中选择布局。我遇到的问题是,当我第一次初始化要在其中使用的视图时onCreate
,这里:
它选择正确的布局。但是当我需要像这里一样调整配置更改的布局时:
它不使用相同的布局实例,而是重新加载它,这让我VideoView
变黑了。然后我无法按任何按钮。
有没有办法重用初始布局?我试图将这样的视图设置setContentView(R.layout.activity_make_photo_video_land);
为一个Activity activity
对象,但 IDE 不允许我这样做,它说Activity is incompatible with void
。因为如果我能获得对该视图的引用,那么我就可以重用它。还是有一种我没有看到的更简单的方法?
谢谢。
android - 图像位图未保存在 onSaveInstanceState 和 onRestoreInstanceState
我的ImageView
. 我在网上找到了可以帮助我整合从我的应用中拍照的代码。它所做的是离开应用程序,进入 Android 相机,然后返回照片。从这里,我将它放入一个ImageView
. 一切正常,直到我不得不添加配置更改。更改配置时图像消失。
为了克服这个问题,我设法让 my VideoView
(它将视图与 my 交替ImageView
)来保存状态,但它的保存代码要求与图像不同。这是我到目前为止所拥有的。我试图研究解决方案,但对我来说没有任何意义。我的代码看起来不完整吗?
谢谢。
更新:
经过进一步研究,如果我在拍照时不旋转相机,则状态会被保存。如果开始方向与我返回应用程序时(拍照后)的方向相同,则应用程序内的配置更改工作正常。问题是,如果我以纵向模式开始,然后单击照片按钮。这将我带到了 Android 相机。然后我决定我想要一张风景照片,所以我旋转它然后拍摄照片。我按下确定,然后我回到应用程序。一旦我到达,因为我现在处于横向模式,所以我ImageView
是空白的。
另外:我在& emImageBitmap
内部做了一个日志,它们都是空的。但为什么?可能是因为位图是在从相机返回之前才创建的?那么我应该如何在配置更改时保存它呢?如此迷茫。onSaveInstanceState
onRestoreInstanceStat
我的两种保存状态方法:
我完整的参考类 MakePhotoVideo.java:
android - 开始时隐藏的视图在显示视图后不再显示,然后配置更改
这个对吗?
- 在布局中有一个标记为不可见或消失的复选框。
- 创建后,将复选框标记为可见(即选择按钮后)。
- 执行配置更改(例如旋转设备)。
- 先前标记为可见的复选框未显示。
但是,复选框的选中状态保持不变,这让我很困惑,保存了哪些信息,没有保存哪些信息?
确保配置更改后视图保持可见的最佳方法是什么?
谢谢,扎克
android - Android - 动态更改语言
在我的 Android 应用程序中,我想动态更改默认语言。我已经实现了这个方法:
在清单中,我将这一行添加到我的 MainActivity 中:
我也试过这个:
此解决方案效果很好,但是一旦屏幕旋转就会恢复到默认配置并恢复语言。
我该如何解决这个问题?
android - 更改区域设置而不刷新和重新加载布局/片段
如何在不重新加载布局的情况下更改语言环境/语言?我们必须执行以下操作来动态更改语言环境
但就我而言,我在片段中有片段。我的应用程序结构Activity
有 8 个可替换的片段,每个片段又有 4 到 5 个可替换的子片段。
我有一个按钮来更改我的主要活动中的语言。因此,当用户更改语言时,几乎不可能加载特定的片段。
请让我知道在上述情况下更改语言环境的最佳方法是什么
android - 当一个活动由于配置更改而被破坏时,它的加载器是否也被破坏了?
在配置更改后重新创建时,它们会自动重新连接到最后一个加载器的光标。因此,他们不需要重新查询他们的数据。
当 Activity 被销毁时,Activity 会指示其 LoaderManager 销毁并关闭其 Loader(以及与它们关联的任何资源,例如Cursor)。
问题是哪一个是正确的?当一个活动由于配置更改而被销毁时,(1) 其加载器 (2) 与其加载器关联的资源会发生什么,例如Cursor
.
android - 为什么当 android:configChanges="orientation|screenSize" 在清单文件中时不调用生命周期活动方法
我已经覆盖了方法onStart()
, onResume()
, onStop()
, onPause()
in MainActivity
。我正在使用log.d()
命令来监视何时调用这些方法。
当我android:configChanges="orientation|screenSize"
在清单中使用时,不会调用我的重写方法。为什么会这样?
android-fragments - 配置更改后无法恢复第二个 fragmentStatePagerAdapter
我有一个问题让我生病了好几天。我的应用程序仅包含一个带有几个主要片段的活动。我有 2 个 FramentStatePageAdapter,第一个在选择一个项目后被第二个替换。但是在方向更改后,应用程序崩溃了,因为第二个适配器中的片段管理器无法获取嵌套片段。我使用这种方法来替换主要片段:
最初,我替换了一个名为 HomeTabsFragment 的片段,该片段包含一个带有 3 个选项卡和 3 个嵌套片段的 FragmentStatePagerAdapter。这就是我在 HomeTabsFragment 中创建适配器的方式:
这是第一个适配器:
用户点击 MusicGenreFragment 的一项后,HomeTabsFragment 被 MusicGenreDetailFragment 替换,MusicGenreDetailFragment 包含一个在其中初始化的适配器:
这是 MusicGenreDetailAdapter:
我重写了方法restoreState(Parcelable state, ClassLoader loader)并且在配置更改后应用程序在此处崩溃。我尝试调试,发现此适配器的片段管理器中没有活动片段。如果我注释掉restoreState中的所有语句,则会显示第一个适配器。
这是日志猫:
……
任何人都可以帮我解决这个问题吗?
java - 更改配置后关闭对话
我目前正在编写一个蓝牙应用程序,只允许用户在肖像模式下使用它。但是,还有一些其他原因导致配置更改迫使我向用户显示蓝牙连接已丢失。
在连接到设备时,我会显示一个提示密码的对话框。如果在此对话框可见时发生配置更改,我想将其关闭。因此,我调用了一个辅助方法onSaveInstanceState
,onDestroy
以及onCreate
(如果保存的实例状态不为空)。
然而,对话仍然显示给用户。我已经阅读了类似的问题,但无法找到解决此问题的方法。
我很感激任何帮助。提前致谢!
android - 方向从横向更改为纵向后,RecyclerView 位于中间而不是顶部
我在片段中使用了recyclerview。如果 Activity 的 configChanges 包含方向,则在手机方向从横向变为纵向后,回收站视图会出现在屏幕中间。但是,它应该始终位于顶部。如果 configChanges 不包括方向,它总是出现在方向更改的顶部。
你知道这是什么原因吗?
这是活动布局
这是片段布局替换上面的框架布局。