当前位置: 首页 > 知识库问答 >
问题:

如何在Android上实现嵌套的主详细信息流?

宗意蕴
2023-03-14

我有一个列表,在一个列表中,在一个列表中,等等。大约有5层。

在手机上为每个列表创建5个活动很容易,但如果我也想支持平板电脑呢?所以我需要使用主细节流。

然而,我似乎找不到任何与嵌套主细节流相关的教程或信息。

无论如何,下面是我描述的一个例子:

在平板电脑布局中,我希望屏幕一次移动两层。通过从正确的层中选择列表项,用户可以升级到下一层。要返回上一层,用户可以点击后退按钮。

你知道我怎样才能做到吗?

共有1个答案

陆信瑞
2023-03-14

在网上搜索了一整天后,我终于找到了解决办法。要获得“嵌套的主细节流”效果,只需使用带有FragmentPageAdapter的ViewPager。主细节流如下所示:

要在用户切换到横向时更改为双面板模式,请在extended FragmentPagerAdapter类中重写以下方法:

@Override
public float getPageWidth(int position) {
    DisplayMetrics metrics = getResources().getDisplayMetrics();
    // if the width is greater than 900dp halve the width of the page
    if ((metrics.widthPixels / metrics.density) > 900) {
        return (0.5f);
    }
    return super.getPageWidth(position);
}

要为查看寻呼机提供“向上按钮”:

viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    // This method will be invoked when a new page becomes selected.
    @Override
    public void onPageSelected(int position) {
        if (position == 0) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(false);
        } else {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }

    }
});

您可以告诉“向上按钮”返回这样的页面(其中viewpager是活动的成员变量,包含对viewpager的引用):

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int position = viewpager.getCurrentItem();
    if (position > 0) viewpager.setCurrentItem(position-1);
    return true;
}

参考文献:

带有FragmentPagerAdapter的ViewPager

在操作栏上显示后退按钮

多视图ViewPager选项

如何实现具有不同片段/布局和示例github项目的ViewPager

 类似资料:
  • 我有如下所示的数据 现在我想获取所有记录的地址,但是当您看到输出时,我将其作为[对象]获取。那么任何人都可以告诉我如何获得地址吗? 这是我的代码: 输出:

  • 如何获得ec2实例详细信息(如名称、id、类型、区域、体积、平台、ondemand/reserved)和实例价格详细信息。 在cli中使用aws api并将其写成csv文件。 提前谢了。

  • 在概览页面中,点击一个实例卡片以打开其“实例详细信息”页面。它以可视方式显示服务器参数和指标,让你快速查看服务器负载和性能。你可以使用“暂停监控”和“继续监控”按钮来暂停和继续监控实例。Navicat Monitor 会停止从服务器收集信息,直到监控继续。 所有受监控的实例都显示在左侧窗格中。选择一个实例以查看与其相关的信息。 实例详细信息页面的信息 摘要 它显示有关服务器的主机信息、服务器属性、

  • 本文向大家介绍如何在SAP-MDG中存储详细信息?,包括了如何在SAP-MDG中存储详细信息?的使用技巧和注意事项,需要的朋友参考一下 如果您不想创建自定义表,则可以借助重用方法来创建数据模型。然后,您可以将此新创建的数据模型保存在暂存MDG中。您还有其他选择是Z表。您可以创建一个Z表来保留数据。 希望这可以帮助!

  • 所以我有一个名为interestingpoint的类,其中包含变量'name'、'coordines'。我创建了一个包含有趣地点的列表,然后在地图上添加标记,如下所示: 所以主要的问题是,当我点击任何标记时,我可以获得它的细节吗?当我点击标记时,我想显示那个地方的描述和图片。

  • 正如你看到我的问题,我很困惑,因为我看到了许多文章和条纹文档解决方案,每次我得到不同的东西。我的应用程序流程类似于第一个用户,他将有两个选项 以前保存的卡片 输入新卡 在这样做的时候,我从客户那里获取卡的详细信息,然后我生成令牌并发送将从db获取的令牌和CusterId(如果是老客户),这意味着客户已经生成,在后端,我首先使用添加付款信息后获得的条带令牌创建客户(如果没有找到CusterId),然