Android Tablet UI:多窗格片段或线性布局

edd*_*ddy 4 android master-detail android-ui android-layout android-fragments

我需要创建最初仅适用于平板电脑的应用。我知道“列表和详细信息”模式,其中存在一些内容列表,单击列表会显示有关所单击项目的详细信息。

只要所有布局都始终具有两个窗格即可:这是完美的:一个用于项目列表,另一个用于所选项目的详细信息。

好吧,在我的应用程序中,我想使用通常用于项目列表的第一个窗格作为应用程序中所有可用选项的菜单,并使用第二个窗格(占据大部分可用空间)来显示基于第一个片段中选择的选项的特定布局。

问题在于第二个窗格将不会总是由单个部分组成。

这些是我将要遇到的所有可能的情况(带有红框的左侧部分代表应始终显示的菜单):

1.详细信息窗格由一个部分组成:

在此处输入图片说明

2.“详细信息”窗格由大小相同的两个部分组成,没有主从关系。

在此处输入图片说明

3.“详细信息”窗格由两个部分组成,这两个部分确实具有主从关系,但主要部分比“详细信息”部分宽

#Edit:

由于我的应用程序的主要目标是帮助服务员下订单,因此当出现以下情况时,这第三个情况就起作用了:

  • 服务员从左侧菜单中选择“接单”选项(假设它是图像中的“第二项”)
  • 在详细信息窗格的第一部分中,服务员可以在他们服务的所有食物类别中进行选择(假设它是顶部的列表),并根据所选类别,以下列表显示了该特定类别下的所有菜肴。
  • 一旦服务员点击菜,它就会自动添加到详细信息窗格的第二部分(在第一种情况下是隐藏的)

在此处输入图片说明

4.“详细信息”窗格由两个部分组成,这两个部分确实具有主从关系,但“详细信息”部分比“主”部分宽。

在此处输入图片说明

我知道,如果要从不同尺寸的屏幕和方向重用布局,则必须使用片段,但必须确定要在细节窗格中显示两个或一个部分(片段),还是要比哪个部分宽另一个似乎是很多工作,老实说,我不确定该怎么做,因为我现在所知道的是主要活动,即带有菜单窗格和详细信息窗格的插槽的主活动应与此类似。 :

<?xml version="1.0" encoding="utf-8"?>
<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/menu"
android:layout_weight="30"
android:layout_width="0px"
android:layout_height="match_parent"
/>
<FrameLayout
android:id="@+id/content"
android:layout_weight="70"
android:layout_width="0px"
android:layout_height="match_parent"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

您认为您可以在此处提供一些UI指南吗?也许我在考虑所有这一切,我应该采用一个线性布局并结合所需零件的数量。

提前致谢。

Y.S*_*Y.S 5

您是否看到了“ 检索联系人列表”示例?在这里,他们展示了如何正确实现多窗格主从流程。相同的代码在平板电脑上提供了多窗格横向布局,在普通手机上提供了单窗格纵向布局。这是一个有趣的示例,尽管有点复杂。

关于在某些情况下具有三个窗格:我认为这不是一个好主意。我认为在任何给定时间都应该只有一个列表屏幕和一个详细信息屏幕,并且您应该实现应用程序的UI流程以支持这种习惯用法。实施三窗格布局并不是很难,但是我怀疑它是否有用或创新。

编辑:

我了解您的要求,并且我不得不承认我没有意识到这种用法的可能性。它的设计很好。我的感觉是,您实际上不需要考虑三个窗格:而是将左侧列表视为列表窗格,而将整个右侧视为单个详细信息窗格。在一个详细信息窗格中,您可以Fragment为三个单独的区域使用三个嵌套的。或者相反,由于嵌套的Fragments有时可能会产生比其解决的问题更多的问题,因此设三个LinearLayouts。这将更容易处理,我正在尝试做的是简化布局,以便它可以正常工作并且不需要复杂的代码。