a を使用し、異なるsViewPager
をスクロールする雑誌アプリを作成しています。WebView
ほとんどのページは縦向きですが、横向きに見えるページもあります。
これを処理するために、次の 2 つの方法を使用してActivity
いViewPager
ます。
public void allowOrientationChanges() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
public void enforcePortrait() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
これにより、縦向きにする必要があるすべてのページが縦向きのままになり ( を呼び出すgetActivity().enforcePortrait()
)、縦向き/横向きのビューを持つページが再起動プロセス全体を通過するようになります ( を呼び出しgetActivity().allowOrientationChanges()
ます)。
雑誌のいくつかのページにビデオを追加したいところまで来ました。残念ながら、HTML5 ビデオ タグが正常に機能しないためVideoView
、レイアウトに を追加しました。今追加する機能は次のとおりです。
- 縦向き: ビデオを特定の場所に表示します。(やった! )
- 横向き: ビデオを全画面表示にします (YouTube アプリのように)。
私はこれをやろうとしてきましたが、私が見つけた唯一の方法はVideoView
、onConfigurationChanged()
メソッドのサイズを変更し、構成が変更されたことActivity
を通知することです。これに関する問題は、ビューの再作成を「許可しない」ようにfragment
追加android:configChanges="orientation|keyboardHidden"
することです。Activity
私が考えた2つの可能な解決策:
- コードから変更
android:configChanges
し、ページによって異なりますが、その呼び出しが存在するかどうかはわかりませんでした。 - メソッドの再作成を強制し
onConfigurationChanged()
ます。を強制的に再作成する方法がわかりませんfragment
。
何か案は?