휴대 전화를 세로 방향으로 고정하고 태블릿 버전을 가로 방향과 세로 방향으로 둘 수있는 앱을 작성하려고합니다.Android - 휴대 전화를 세로로 고정하고 태블릿을 가로 및 세로로 놓을 수 있습니다.
나는 모든 다음 질문에 따라 거의 작품 ...
How do I lock screen orientation for phone, but not for tablet? (Android) How to allow both landscape/portrait for tablets only Portrait for phone, landscape for Tablet (Android-Layout) 내가 지금까지했던 어떤 landscape mode in tablet only Locking phone in portrait mode
내 자신에 활동을 확장 무언가를 만들었습니다 기본 작업 및 onCreate와 덮어 쓰기 된 onConfigurationChanged에 오리엔테이션 변경 코드를 포함합니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
if(!(new DeviceHelper().isTablet(this)))
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
super.onCreate(savedInstanceState);
setupActionBar(getActivity());
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
//don't reload the current page when the orientation is changed
if(!(new DeviceHelper().isTablet(this)))
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
super.onConfigurationChanged(newConfig);
}
모든 것이 잘 작동합니다 (필자는 onConfigurationChanged를 덮어 씀으로써 활동이 파괴되고 다시 생성되어 몇 초 동안 검은 화면이 나타남).
내 주요 문제는 가로로 휴대 전화를 잡고 있으면 활동이 세로로 유지된다는 것입니다. 완벽한! 그러나 전화가 실제 풍경에 있기 때문에 태블릿의 레이아웃 인 가로 레이아웃이 사용됩니다.
내 이해는 setRequestedOrientation이 호출 될 때 즉시 onConfigurationChanged를 발생시키지 않으면 서 조각이 먼저 호출 된 다음 onConfigurationChanged를 호출하기 전에 배치가 잘못 팽창되어 가로 레이아웃이 이미 설정되었음을 의미합니다.
구성을 기반으로 각 액티비티에서 레이아웃을 설정할 수 있다고 생각하지만 실제로하고 싶지는 않습니다.
그렇다면 앱이 setRequestedOrientation을 기반으로 적절한 res 폴더의 적절한 레이아웃 파일을 사용하게하려면 어떻게해야합니까?
감사
이 잘 작동과
가로 폴더 파일을 어떤 폴더에 넣었습니까? – Parnit
두 파일이 있는데 하나는 일반 레이아웃이고 다른 하나는 레이아웃 랜드입니다. 활동이 세로 방향으로 잠겨 있어도 전화가 가로로 유지되기 때문에 레이아웃 랜드 파일이 사용 중입니다. –