0

私は、横向きやその他の画面サイズのタブレット用に異なるレイアウトが必要なAndroidアプリケーションを開発しています。Androidチュートリアル( http://developer.android.com/training/multiscreen/screensizes.html )で提案されているように、さまざまなフォルダーにさまざまなレイアウトを作成しました。

そのため、layout-xlarge、layout-xlarge-land などがあり、レイアウト プレビューはさまざまなデバイスのレイアウトを認識しているように見えますが、アプリケーションを起動すると、デバイスごとにレイアウトが認識されなくなります。次のコードは常に通常サイズのレイアウトを返します。

int screenLayout = context.getResources().getConfiguration().screenLayout;
        screenLayout &= Configuration.SCREENLAYOUT_SIZE_MASK;

switch (screenLayout) {
       case Configuration.SCREENLAYOUT_SIZE_XLARGE:
          initXLargeLayout();
          return;
       default:
          initViePagerDefaultLayout();
          return;
    }

同様の問題を抱えている人を見つけることができませんでした。マニフェスト ファイルに何かを追加する必要がありますか?

4

2 に答える 2

0

あなたを使用する代わりに、次のint screenLayoutようなことをする必要があると思います: https://stackoverflow.com/a/9308284/4907293

于 2015-05-17T10:32:26.573 に答える
0

これは、特大画面を持たないデバイスで起動しているためである可能性があるため、デフォルトになります。どのようなデバイスを使用していますか?

ちなみに、Android が構成を検出し、レイアウト フォルダー (xlarge、mdpi など) から選択して、適切なレイアウトを自動的に使用するため、大文字と小文字を切り替えるコードを実行する必要はありません。

フォルダー構造は次のようになります。

res
├── layout
│   └── activity_main.xml
├── layout-xlarge
|   └── activity_main.xml
└── layout-xlarge-land
    └── activity_main.xml

コードで setContentView(R.layout.activity_main.xml) を 1 回実行するだけで、デバイスに応じて Android が使用するものを選択します。

デバイスの構成を確認することをお勧めします。おそらく、それは単に大きいか、他のサイズです。

于 2015-05-17T10:34:03.180 に答える