gpt4 book ai didi

android - 更改安卓 :configChanges dynamically

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:23 24 4
gpt4 key购买 nike

我正在创建一个杂志应用程序,它使用 ViewPager 并在不同的 WebView 上滚动。大多数页面是纵向的,但也有一些页面可以横向显示。

为了处理这个问题,我在包含 ViewPagerActivity 中使用了两种方法:

public void allowOrientationChanges() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}

public void enforcePortrait() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

有了这个,我们确保所有只需要纵向的页面都保持纵向(调用 getActivity().enforcePortrait())并且具有纵向/横向 View 的页面贯穿整个重启进程(调用 getActivity().allowOrientationChanges())。

我们已经到了想要在杂志的某些页面中添加视频的地步。不幸的是,HTML5 video 标签不能正常工作,所以我们在布局中添加了一个 VideoView。现在要添加的功能是:

  • 纵向:在特定位置显示视频。 (完成!)
  • 横向:使视频全屏显示(如 youtube 应用)。

我一直在尝试这样做,我发现的唯一方法是在 Activity< 的 onConfigurationChanged() 方法中更改 VideoView 的大小 并通知 fragment 配置已更改。问题是将 android:configChanges="orientation|keyboardHidden" 添加到 Activity 将“禁止”重新创建 View 。

我想到的两种可能的解决方案:

  1. 根据页面更改代码中的 android:configChanges,但我找不到该调用是否存在。
  2. 强制重新创建 onConfigurationChanged() 方法。我不知道如何强制重新创建 fragment

有什么想法吗?

最佳答案

也许有一种解决方法,即在 list 中用相似的名称定义 Activity 两次,并将第二个化身设置为 enabled=false。然后通过调用 PackageManager.setComponentEnabledSetting(....) 动态切换这两个 Activity 这只是一个想法,不确定是否可行。

关于android - 更改安卓 :configChanges dynamically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7246345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com