2

/layout-v7/layout-v8/layout-v11のフォルダを作成して、異なるプラットフォーム用の適切なレイアウトを読み込むことができます。私の場合、プラットフォームのバージョンに基づいてレイアウトファイルをロードする

しかし、上記の方法では、必要なすべてのプラットフォーム用に異なるレイアウトフォルダを作成する必要があります。

私は私のアプリは、APIバージョン> = 11とプラットフォーム上で実行されている場合のみ、2レイアウトフォルダ持っていると思います、それはlayout-y/から、layout-x/からそう負荷レイアウトファイルをロードします。

これを行うには?

+1

異なる名前のレイアウトフォルダにすべてを作成し、 'android.os.Build.VERSION.SDK_INT'値をチェックして正しいものをロードしてください。 –

+0

@ Sergey、私は投稿する前に言ったのと同じことをやった。私の目的のための他の回避策がありますか? –

+0

私はそれを行うには悪い方法だとは思わない。大丈夫だよ。標準的な手順に従う場合は、複数のフォルダを使用して提案します。 –

答えて

7

私は、そうでない場合は、レイアウト-Yの/からレイアウトファイルをロードし、私のアプリは、APIのバージョン> = 11とプラットフォーム上で実行されている場合、それはレイアウト-X /からロードし、2つだけのレイアウトフォルダを持っていると思います。

res/layout-v11/res/layout/を作成します。そして、あなたは完了です。

+1

私のアプリがAPIバージョン13のプラットフォームで動作している場合、アプリはlayout-v11からレイアウトファイルをロードしますか? –

+0

次に3つのフォルダを作成してください:) –

+3

"私のアプリケーションがAPIバージョン13のプラットフォームで動作している場合、アプリケーションはlayout-v11からレイアウトファイルをロードしますか?" - はい。 – CommonsWare

1

この問題もありました。上記の答えは、私がそれをやっていたやり方を変えるよう促しました。私は 'layout-v8'と 'layout'という名前のフォルダを持っていました。もしそれがv8にマッチすれば、そのフォルダを使用し、他のフォルダは通常のレイアウトと一致すると考えました。

間違ったフォルダを使用している場合は、フォルダ名の処理方法を切り替えます。この例では、v11以上の 'layout-v11'を作成しました。その後、通常の 'layout'フォルダは10以下です。

関連する問題