2017-04-13 7 views
0

私はアプリケーションに実装されているビューページャーを持っています。私は両方を使用しているはずの1ページを除くすべてのページに、画面方向PORTRAITを設定したいと思います。今私はこのコードを使用していますが、この場合は両方向を使用するすべてのページです。ビューページ内のコードから画面の向きを設定するにはどうすればいいですか?

Mainfestで

:フラグメントで

<activity android:name=".ViewPagerActivity" android:screenOrientation="portrait"> 

getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); 
+0

?あなたがそれを間違った場所で行うと、私はあなたが(アクティビティの開始時に)ビューページを初期化すると思います。 –

+0

@VladMatvienkoターゲットフラグメント内にあります。 –

+0

それは間違っています。 Viewページャはあなたのようには機能しないと思われるので、あなたはviewPagerページでそれを呼び出す必要があります。希望のインデックスに変更します。 –

答えて

1

はあなたのViewPager断片ドキュメントから

setUserVisibleHint

を使用することができます。

このフラグメントのUIが現在 であるかどうかのヒントをシステムに設定します。このヒントのデフォルトはtrueに設定され、フラグメントインスタンスの状態の保存と復元には永続的な が使用されます。

この特定のフラグメントでは、この方法をオーバーライドしてオリエンテーションの変更を適用します。例えば

:まさにこの行を呼び出す

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    if(isVisibleToUser) { 
     Activity activity = getActivity(); 
     if(activity != null) activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR); 
    } 
} 
+0

良いと思います。 –

関連する問題