如何在横向布局中包含纵向布局?

How to include a portrait layout in a landscape layout?

我设计了完美的纵向布局。我想将 is 作为横向版本的一部分包含在内(见附件)。

没有额外的功能,所以我认为没有必要费心使用 Fragments。

当然,一个布局的纵向版本不能包含在横向版本中。以下代码会产生明显的错误 "layouts should not include itself":

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

    <include
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        layout="@layout/my_perfect_layout"
        />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/demo"
        />
</LinearLayout>

有没有办法强制布局目录,这样我就不会得到这个 include 无限循环?还是完全有另一种方法?此时我真的很想避免更改任何 java 代码!

最佳实践:

  • 将您的内容布局放入无方向布局文件中。 (这是可重复使用的部分)
  • 为您要使用的所有方向创建框架布局文件并包括内容布局。 (这是您放置布局特定部分的部分,例如在横向中包含更多内容)