新思路:
这是另一种解决方法,它不是很优雅,但非常简单。将元素 (1) 放在其自己的 <LinearLayout> 中,配置如下:
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" // More on this line below
android:layout_alignParentTop="true"
android:layout_above="@id/element2"
android:gravity="center">
该线性布局将始终从屏幕顶部跨越到元素 (2) 的正上方,并且由于其重力为“中心”,因此元素 (1) 将始终位于任何可用空间的中间。注意:该行android:layout_height="..."
是必需的,但似乎实际上并没有做任何事情。无论是 fill_parent 还是 wrap_content,它的高度都被将其顶部锚定到 ParentTop 并将其底部锚定到 element(2) 的线覆盖。但是,没有该行会使其崩溃并出现运行时异常。
原创,不是很好的主意:
另一个不太理想的解决方案是使用两个布局文件。将纵向布局 xml 放在布局文件夹中,将横向布局放在名为 layout-land 的新文件夹中。然后,Android 会根据手机的方向自动选择正确的那个。我认为您可以使用layout-port
,但将肖像放入其中只是layout
确保它知道默认使用哪一个。