我正在創建一個雜誌應用程序,它使用ViewPager
並滾動到不同的WebView
s。 大部分頁面都是肖像畫,但其中一些可以看作是風景畫。動態更改android:configChanges
爲了解決這個問題,我使用兩種方法在Activity
持有ViewPager
:
public void allowOrientationChanges() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
public void enforcePortrait() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
有了這個,我們要確保所有的,只是需要的頁面變爲縱向住宿畫像(呼叫getActivity().enforcePortrait()
)和具有縱向/橫向視圖的整個重新啓動過程(呼叫getActivity().allowOrientationChanges()
)。
我們達到了想要將視頻添加到某些雜誌頁面的程度。不幸的是,HTML5視頻標籤無法正常工作,因此我們在版式中添加了VideoView
。 現在增加的功能是:
-
人像
- :顯示在某個地方的視頻。 (完成!)
- in landscape:製作視頻全屏(如youtube應用程序)。
我一直在努力做到這一點,我發現的唯一方法是改變VideoView
的大小在方法在Activity
並且通知該配置改變fragment
。與此相關的問題是將android:configChanges="orientation|keyboardHidden"
添加到Activity
將「禁止」要重新創建的視圖。
兩個可能的解決方案,我認爲:
- 從代碼更改
android:configChanges
並根據網頁上,但如果該呼叫存在,我無法找到。 - 強制重新使用方法。我不知道如何強制
fragment
的娛樂。
任何想法?
我剛剛讀了一些關於'setComponentEnabledSetting()'方法。問題在於它需要一個由Component名稱和類名創建的「ComponentName」,所以活動名稱不能相同。如果這也將是解決這將是一樣的定義兩個不同的'activities'並推出他們的時候不健全的罰款:( – Macarse