簡體   English   中英

Android屏幕方向:

[英]Android Screen Orientations:

在此處輸入圖片說明

在此處輸入圖片說明

這些方向在這里正確顯示,但是當我運行它並更改方向時,橫向模式不起作用,所有按鈕都放錯了位置, 在此處輸入圖片說明

該問題的解決方案可能是什么? 用於橫向模式的XML。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/flowers"
android:id="@+id/frontpage_layout"

                              tools:context="com.example.hassidiczaddic.multiplescreensupport.MainActivity">

   <RelativeLayout

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/scrollView">

    <Button
    android:layout_width="200dp"
    android:layout_height="50dp"
    android:text="OPEN"
    android:textSize="20sp"
    android:id="@+id/button.open"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

   <Button
    android:layout_width="200dp"
    android:layout_height="50dp"
    android:text="LARGE"
    android:textSize="20sp"
    android:id="@+id/button.large"
    android:layout_alignParentRight="true"
    android:layout_marginRight="86dp"
    android:layout_marginEnd="86dp"
    android:layout_toRightOf="@+id/button.rate"
    android:layout_toEndOf="@+id/button.rate" />

    <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="20sp"

    android:text="Something"
    android:id="@+id/button.something"
    android:layout_marginTop="38dp"
    android:layout_below="@+id/button.open"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_toLeftOf="@+id/button.rate"
    android:layout_toStartOf="@+id/button.rate" />

    <Button
    android:layout_width="wrap_content"

    android:textSize="20sp"
    android:layout_height="wrap_content"
    android:text="RATE"
    android:id="@+id/button.rate"
    android:layout_marginTop="38dp"
    android:layout_below="@+id/button.something"
    android:layout_toRightOf="@+id/button.open"
    android:layout_toEndOf="@+id/button.open" />

    <Button
    android:layout_width="wrap_content"
    android:textSize="20sp"
    android:layout_height="wrap_content"
    android:text="CLOSE"
    android:id="@+id/button.close"
    android:layout_alignTop="@+id/button.something"
    android:layout_alignRight="@+id/button.large"
    android:layout_alignEnd="@+id/button.large"
    android:layout_toRightOf="@+id/button.rate"
    android:layout_toEndOf="@+id/button.rate" />
    </RelativeLayout>

    </ScrollView>

主要活動有6種不同的布局,其中OS將根據為每個XML布局指定的限定符選擇最適合當前設備的布局, 此處定義了規則。

由於您已經提供了small / normal / large屏幕尺寸的布局,因此這些布局將優先於您的land布局。 實際上,只有在xlarge屏幕上運行時才會使用land布局,因為只有這樣,才會使用layout-land定義的layout-land (有關更多詳細信息,請參見上面的鏈接)。

您可以通過以下任一方法解決此問題:

  1. 刪除layout-small / layout-normal / layout-large ,然后操作系統沒有比layout-portlayout-land提供的更好的操作系統,請注意,使用layout-small / layout-normal / layout-large具有多年來一直強烈建議不要這樣做,您應該查看“ 支持多屏”文章。
  2. 代替使用layout-portlayout-land ,而使用Available height限定符( layout-hXXXdp ),其中XXX是希望應用此布局的最小高度。 例如, layout-h320dp可以在縱向模式下包含電話的布局,並將布局XML的並行版本放在默認文件夾( layout )中。
  3. 重新設計您的UI設計,因此不需要上述任何操作,也許可以將按鈕放在ScrollView中

根據您的圖片顯示,您已經使用了RelativeLayout,並且因為按鈕沒有可用的空間,所以它重疊並且放錯了位置。

最好將ScrollView用作RelativeLayout的父級,否則必須通過計算屏幕高度和所有這些參數來動態調整按鈕的大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM