[英]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
(有關更多詳細信息,請參見上面的鏈接)。
您可以通過以下任一方法解決此問題:
layout-small
/ layout-normal
/ layout-large
,然后操作系統沒有比layout-port
和layout-land
提供的更好的操作系統,請注意,使用layout-small
/ layout-normal
/ layout-large
具有多年來一直強烈建議不要這樣做,您應該查看“ 支持多屏”文章。 layout-port
和layout-land
,而使用Available height限定符( layout-hXXXdp
),其中XXX是希望應用此布局的最小高度。 例如, layout-h320dp
可以在縱向模式下包含電話的布局,並將布局XML的並行版本放在默認文件夾( layout
)中。 根據您的圖片顯示,您已經使用了RelativeLayout,並且因為按鈕沒有可用的空間,所以它重疊並且放錯了位置。
最好將ScrollView用作RelativeLayout的父級,否則必須通過計算屏幕高度和所有這些參數來動態調整按鈕的大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.