ViewPager
을 사용하는 잡지 응용 프로그램을 만들고 WebView
을 스크롤합니다. 대부분의 페이지는 세로이지만 일부는 가로로 볼 수 있습니다.android : configChanges를 동적으로 변경하십시오.
이 문제를 처리하기 위해, 나는 ViewPager
보유 Activity
에 두 가지 방법을 사용하고 있습니다 : 우리가 필요로하는 모든 페이지가 세로 숙박 초상화를 할 수 있는지 확인이와
public void allowOrientationChanges() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
public void enforcePortrait() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
을 (getActivity().enforcePortrait()
를 호출)와 세로/가로보기가있는 항목은 전체 재시작 과정 (getActivity().allowOrientationChanges()
)으로 이동합니다.
우리는 잡지의 일부 페이지에 비디오를 추가하려고했습니다. 죄송하지만 HTML5 동영상 태그가 제대로 작동하지 않아 VideoView
을 Google 레이아웃에 추가했습니다. 지금 추가 할 기능은 다음과 같습니다.
- (세로) : 특정 장소에 비디오를 표시합니다. (완료!)
- (가로) : 동영상을 전체 화면으로 만듭니다 (예 : YouTube 앱).
나는이 작업을 수행하기 위해 노력하고 내가 찾은 유일한 방법은 Activity
에 방법에 VideoView
의 크기를 변경하고 구성을 변경 한 fragment
통지. 이 문제는 Activity
에 android:configChanges="orientation|keyboardHidden"
을 추가하면보기를 다시 만들 수 없게됩니다. 코드에서 android:configChanges
을 변경하고 페이지에 따라
- 하지만 호출이있는 경우 나 찾을 수 없습니다 :
두 가지 가능한 솔루션을 나는 생각했다.
- 메서드에서 다시 생성하도록 강요합니다.
fragment
의 레크리에이션을 강제하는 방법을 모르겠습니다.
아이디어가 있으십니까?
'setComponentEnabledSetting()'메소드에 대해 조금 읽었습니다. 문제는 패키지 이름과 클래스 이름으로 생성 된'ComponentName'이 필요하다는 것입니다. 따라서 액티비티의 이름은 같을 수 없습니다. 만약 이것이 해결책이된다면 두 개의 서로 다른 'activities'를 정의하고 괜찮은 소리를 내지 않는 페이지 스크롤을 시작할 때와 똑같을 것입니다 : ( – Macarse