2016-08-10 13 views
0

Androidのガイドで複数の画面サイズをサポートしているのを読んだら、要素が必要な場所に配置されていることを確認するために、画面サイズごとに複数のレイアウトを作成する必要があることがわかりました。私のXamarin.Androidアプリは、使用するサイズレイアウトをどのように知っていますか?

ガイドで言及していないことの1つは、レイアウトが読み込まれるようにプログラムで指定する方法です。これは、Androidがそのフォルダの名前に基づいて使用するレイアウトを自動的に検出するためですか?たとえば、「layout-sw700dp」という名前のフォルダ内のレイアウトが、その画面幅のデバイスに対して選択されますか?

要するに、異なる画面サイズに代替レイアウトを使用することは、適切に名前を付けて配置したフォルダに異なるレイアウトを配置するだけであるかどうかを知りたいと思います。 Here'sプロパティペインが表示されたXamarin Studioのレイアウトの画像。それはNexus 4で欲しいと思う方法です。すべてが中心に置かれている。しかし、私が別のサイズのデバイスに切り替えると、要素はもはや中央に置かれなくなります。 See here

+1

はいです。 https://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources –

+1

すべてのレイアウトに 'dp'を使用すると、要素は画面の密度に応じて縮尺されます。別のレイアウトを使用する唯一の理由は、タブレットやランドスケープ指向のデバイスに、たとえば「広い」コンテンツを表示させたい場合です。 –

+0

私は全てのレイアウト上でパディングにdpを使用しましたが、要素は異なったスクリーンサイズで別々の場所に表示されます。 –

答えて

0

cricket_007が悲しいので、別の向きを使用する場合や、アプリのタブレットをより使いやすくする場合は、別のxmlを使用する必要があります。

電話には、携帯電話の大部分をカバーする1つのxmlの作成を練習する必要があります。

そして、要素をスキャンに配置するためにパディングを使用しないでください。たとえば、パディングを使用して、Screanの右側にTextViewを設定しないでください。ライトを使用してpaddingLeft = 250dpをいくつかのscrenに設定すると、textViewは右端に置かれますが、タブレットでは中央付近に配置されます。

適切な方法はこれについて何かを設定することです:

<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_alignParentRight="true" 
android:padding="10dp"/> 

これは感情であることをRelativeLayoutでなければなりません。このtextViewは、画面の右側にあるすべての電話機とタブレットに小さなパディングで配置されます。

+0

パディングを使わずに要素を配置する方法は?私が欲しいところに彼らを連れて行く別の方法がありますか? –

+0

あなたが達成したい、または説明したいものを投稿して、レイアウトとビューの仕組みを説明することができます。 – LoveNexus

+0

画像で更新 –