안드로이드

안드로이드 Fragment setOrientation landscape 프래그먼트 오리엔테이션 항상 가로

알통몬_ 2019. 1. 4. 15:26
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


안드로이드에서 Activity의 경우 manifest.xml 에서

Orientation을 설정할 수 있습니다.


<activity android:name=".MPAndroidChartActivity"
android:screenOrientation="sensorLandscape"/>

그런데 Fragment의 경우에서는 manifest.xml에서 설정을 할 수 없기 때문에

자바(코틀린)파일에서 코드로 setOrientation을 해주어야 합니다.


방법은 매우 간단합니다.

@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

assert getActivity() != null;
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

먼저 assert getActivity() != null;

로 부모 액티비티가 null 인지 검사를 해주고 핵심 코드는 아래 입니다.

getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

SCREEN_ORIENTATION_LANDSCAPE 말고도 액티비티에 설정할 수 있는

모든 ORIENTATION이 있습니다.

간단하죠? 이상입니다.

반응형