0

モバイルビューで縦向きの画面の向きを持ち、タブレットビューで両方の向きを持ちたいマニフェストで向きを定義しませんでしたが、デバイスがタブレットではないかどうかを確認し、次の行でコードの向きを縦にします:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

このコードはタブレットで完全に機能しますが、タブレットでアプリを横向きに実行しようとすると問題が発生し、最初のアプリは横向きで実行され、コードによって縦向きに変更されます。そのため、onCreate関数は 2 回実行されます。二度とやりたくない!

たとえば、たとえばで変数を定義し、values-sw600dpそれを使用してマニフェストの向きを変更できますか? またはマニフェストの向きの優先度を変更しますか?! (そしてコードで方向を設定しますか?!)

4

1 に答える 1

0

私が使用した回避策は、タブレット用のメイン レイアウトを提供することです。メイン アクティビティから、目に見えないビュー「dummy_for_tablet」を追加します。

    @Override
    protected void onCreate(Bundle savedInstanceState)
    { 
         ....
         if( findViewById(R.id.dummy_for_tablet) != null)
         { //it's a tablet }
         else
         { //it's a mobile }
          ...
    }
于 2013-10-13T14:30:59.780 に答える