Android多级Master-Detail流程,具有两种窗格模式

时间:2017-01-04 09:41:54

标签: android android-fragments android-animation master-detail

我目前正在使用Fragment在Android中使用一个和两个窗格模式。基本上我有一些主/细节流程,每个细节都是其他细节的主人 例如,我们有一个带有详细信息Clients的主Client。每个Client都是某种名为Orders的主人。 Orders然后有详细信息Order。每个Order都有一个Articles列表,其中包含详细信息Article,依此类推 所以我想有一个两个窗格的布局,左边是Master,右边是Detail。因为每个细节都是一个大师,当它转到它的细节时,我想将整个Layout移到左边。因此,“旧”主人不在左边的Layout,新的列表/明细从右边进入Layout

基本上应该是这样的:

Clients/Client

在左边我有Clients,在右边我有所选客户John的详细信息。
现在,如果我点击详细信息中的Orders...,我想从右侧移入Orders列表,将Clients主页和详细信息推到左侧。
结果应如下所示:

Client/Orders

基本上,Clients主人移出LayoutClient详细信息现在位于左侧,Orders主人位于右侧。
再次点击其中一个Orders,从右侧移动Order的详细信息,然后将Client主机推出左侧。
结果:

Orders/Order

要创建转换,我执行了以下操作:

  1. 创建一个水平LinearLayout,其中包含3个FrameLayout个孩子。
  2. 将第一个和第二个layout_weight的{​​{1}}设置为1.0f,将第三个FrameLayout设置为0.0f。
  3. 为第一个和第三个Animation的{​​{1}}创建一个layout_weight,将第一个从1.0变为0.0,将第三个从0.0变为1.0
  4. 等到FrameLayout完成
  5. Animation从第一个Fragment替换为第二个FrameLayout,将Fragment从第三个FrameLayout移到第二个。{/ li>
  6. 重置layout_weight
  7. 如果您在将Fragment添加到另一个容器之前remember to remove // Karma serves files under /base, which is the basePath from your config file baseUrl: '../', ,那么这非常有效。
    我对这个解决方案的问题是,当我想回去时 作为一个用户,我希望,前一个主人从左边进入,并在右边推动当前细节(反向动画)。
    我想这将是最好使用Fragment-Backstack,但我无法弄清楚如何做到这一点。 那我该如何管理“回归”呢?或者对于这种“多级主 - 细节流程”有更好的解决方案吗?

0 个答案:

没有答案