0

さまざまな画面で異なるレイアウトと値のファイルを持つアプリを開発していますが、問題が発生します。smallestWidth修飾子は、デバイスのsmallestWidthが指定された値よりも大きいかどうかのみをチェックします。

以下のフォルダ構造がある場合、これは厄介です。

res/layout-port-mdpi
res/layout-sw720dp
res/layout-sw720dp-port
res/layout-sw720dp-land

この場合、デバイスでは、私が本当に使用したいものではなくmdpi sw720 port、Androidが使用します。小型電話用です。res/layout-port-mdpires/layout-sw720dp-portres/layout-port-mdpi

719dpよりもsmallestWidthLESSを示す方法はありますか、res/layout-sw720dp-port-mdpiそれとも他のすべてのdpi用に作成する必要がありますか?それはとても愚かに聞こえます。

親切な回答ありがとうございます。

4

1 に答える 1

3

res / layout-port-mdpiは、小型の電話用です。

いいえそうではありません。中密度画面のポートレートデバイス用です。サイズについては何も規定していません。

この場合、mdpi sw720ポートデバイスでは、Androidは本当に使用したいres/layout-sw720dp-portではなくres/layout-port-mdpiを使用します。

番号-sw720dpはよりも強力な基準であるため、縦向きで保持され-mdpiているデバイスには-sw720dp -mdpi res/layout-sw720dp-port使用する必要があります。

719dpのようにsmallestWidthLESSを示す方法はありますか

あまり。-swNNNdpデバイスの値が使用するリソースセットよりも低い場合、Androidは値のないリソースセットを使用します。

res / layout-sw720dp-port-mdpiおよび他のすべてのdpiを作成する必要がありますか?

いいえ。

たとえば、デバイス専用-sw720dpのレイアウトと小型デバイス用のレイアウトを使用し、サイズごとに横向きのレイアウトを変更することが目的の場合、ディレクトリは次のようになります。

  • res/layout-sw720dp-land/-sw720dp横向きのデバイス用
  • res/layout-sw720dp/-sw720dp横向きでないデバイスの場合
  • res/layout-land/-sw720dp横向きに保持されているデバイスよりも小さい場合
  • res/layout/-sw720dp横向きでないデバイスよりも小さい場合

にすべてのレイアウトの1つを配置しres/layout/、必要な場合にのみ、リソースセット内のそれらのレイアウトをより多くの制約でオーバーライドします。

于 2012-04-22T12:35:36.943 に答える