1

Landscape modeとに従ってレイアウトを調整したいportrait mode

私の 7 インチ タブレット デバイスでは、portrait modeは小さすぎLandscape modeてかなり大きいです。縦長モードが小さいため、ボタンのサイズが縮小されたり、テキストが別のテキストと交差したりするなど、リスト項目と一部のテキストが混在しています。

したがって、同じビュー レイアウトに対して、モードに応じて異なる設定が必要です。

たとえば、One Layout over the Top of Other のSO 投稿を考えてみましょう。にこのシナリオが欲しいportrait mode。ただし、の場合、あるビューを他のビューの上に重ねLandscape modeたくありません。むしろ、一方のビューをもう一方のビューに表示したいのです。

さまざまなモード用の私のxmlレイアウトファイル-

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
              android:id="@+id/news_fragment"
              android:layout_weight="1"
              android:layout_width="0dp"              
              android:layout_height="match_parent" />

    <FrameLayout
              android:id="@+id/channel_fragment"
              android:layout_weight="2"
              android:layout_width="0dp"
              android:layout_height="match_parent" />

</LinearLayout>

問題は、これは良さそうに見えlandscape modeますが、ポートレート モードにnews_fragmentなると、オーバーラップする必要があることchannel_fragmentです。

レイアウト ファイルを考慮してこの動作を実現する方法は同じです。または、ポートレート用にも新しいものを作成する必要がありますか?

4

2 に答える 2

2

2 つの異なるレイアウト ファイルを作成するだけです。この件に関する開発者ガイドを読む必要があります。

基本的に、次の 2 つの res/layout フォルダーを作成します res/layoutres/layout-land

次に、横向きのレイアウトをlandフォルダーに追加し、縦向きバージョンを別のフォルダーに追加します。

于 2013-06-13T07:35:04.697 に答える
0

したがって、シナリオによると:

私は3つのレイアウトフォルダを保持しました..

  • res/layout/activity_main (モバイル デバイス用)
  • res/layout-large/activity_main (ポートレート モードのタブレット デバイスの場合)
  • res/layout-large-land/activity_main (ランドスケープ モードのタブレット デバイスの場合)

3 つのレイアウト ファイルにはすべて、必要に応じて表示するための独自のコンテナーが含まれています。

トリックは次のとおりです。

の activity_main はlayout-large-landタブレット デバイスの横向きに対応しているため、の activity_main はlayout-largeデフォルトで縦向きになります。

したがって、モバイル デバイスのビュー、タブレットのさまざまな向きの場合、上記のシナリオが最適であり、うまく機能しています。

于 2013-06-13T11:52:11.283 に答える