支持不同的屏幕尺寸动态或静态的片段?(Supporting different screen siz

2019-10-31 04:49发布

我感到十分困惑,以便能够支持使用片段多屏幕。 我认为这个想法是,我可以提供活动的多个版本,该活动可以有1个或多个片段(取决于房地产)静态嵌入式。

支撑其中这些是从代码,而不是嵌入加入动态片段<fragment>元素类型。 这将如何在代码来完成,因为我不知道从活动的XML的配置细节。

有没有人有这方面的一个例子吗?

当我将使用静态或动态片段。

其中一个原因,我可以预见到使用动态片段是支持的片段保持这样的活动可以只要求它的代码,但我发现很难理解如何做到这一点不活动(JAVA)的支持知道什么XML文件可

谢谢

Answer 1:

我发现它非常有用翻阅和理解的代码的Android样品 。

这些样品的项目通常是相当小的和只集中在1或2个各主要概念。

如果你不希望实际下载和安装示例项目,你也可以只浏览的源代码GitHub上 。

例如在NavigationDrawer采样的NavigationDrawerActivity类包含一个动态创建PlanetFragment类。



Answer 2:

有使用“动态”片段2个主要原因:

  1. 您可以通过代码传递参数。 例如,如果你有一个显示物品的片段,可以通过代码创建片段,并与第初始化它,以显示(使用Fragment.setArguments(Bundle) )。 这是通过使用参数的等效于一个活动Intent.putExtras()
  2. 您可以在同一容器互换不同片段。

例1:在您的主要活动你有3个部分的导航菜单。 当用户选择一个新的部分,替换片段“一节”在同一个容器的FrameLayout片段“B区”。

实施例2:你显示在平板(项目列表+详情)一个两窗格布局。 每个用户在左侧列表中选择一个项目时,您将创建新的项目,以显示和更换用新权的现有片段初始化的新片段。

例3:您有它显示的文章一长串一个ViewPager。 你向右或向左滑动导航到一个/下一个文章。 这些片段将编程一个FragmentPagerAdapter内创建; 你不能这样做,使用静态片段。



Answer 3:

要回答你关于如何实现动态片段的双窗格的问题,这里是如何:

  1. 创建你的资源文件夹命名值土地。 在此文件夹中添加你将有一个这样的代码config.xml文件:

    <resources> <item type="bool" name="dual_pane">true</item> </resources>

  2. 在“正常”值的文件夹,在config.xml文件中,添加以下代码:

    <resources> <item type="bool" name="dual_pane">false</item> </resources>

  3. 在您的活动,你可以在OnCreate(),对应于景观配置布尔值刚刚创建检测:

    。getResources()getBoolean(R.bool.dual_pane);

  4. 然后,基于布尔值,可以决定膨胀只有两个在其它(单面板布局)的顶部片段容器或具有两个片段容器的布局彼此相邻(双窗格布局)。

  5. 最后,动态添加您的片段适当的容器,瞧。

我喜欢这个计算策略,因为它是非常的Android一样,通过使用不同的值的文件夹。 你也没有太多的改变,以现有的工作片段模式,使其支持双窗格模式。



文章来源: Supporting different screen sizes with dynamic or static fragments?