不同屏幕尺寸的碎片

时间:2014-04-29 22:23:18

标签: android android-fragments

我正在为Android编写一款回合制游戏。主要游戏有3个部分。一个介绍屏幕,显示接下来要播放的玩家,玩家玩积分的实际游戏画面,以及显示玩家排名的电路板屏幕。

在我的实现中,我使用3个片段(每个部分一个),并根据需要使用片段事务(FragmentTransaction.replace)在它们之间导航。

这种方法工作正常,但是我现在想添加一个额外的功能,对于大屏幕设备,引入屏幕和电路板屏幕将同时显示。我理解如何在xml中执行此操作,因此当我们首次导航到简介屏幕时,我们会显示两个片段。

我遇到的问题与片段事务有关。当执行事务以传递出电路板屏幕时,我需要确定是转换为两个片段布局还是一个片段布局?做这个的最好方式是什么?在确定要执行哪些事务之前,我是否必须以编程方式获取屏幕大小,或者是否有更简洁(XML?)的方式来执行此操作?

谢谢,

威尔

1 个答案:

答案 0 :(得分:1)

是的,有这样做的XML方式。 但它需要一些重构。

使用FrameLayout容器创建不同的布局。 电话布局通常只包含一个容器。 平板电脑布局两三个。

您必须根据屏幕尺寸将布局放入正确的目录中:

res/layout/main_activity.xml           # For handsets (smaller than 600dp available width)
res/layout-sw600dp/main_activity.xml   # For 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml   # For 10” tablets (720dp wide and bigger)

见这里:Layout for tablets in Android

然后将片段放入容器中,如果容器存在,就像用户在此处所做的那样: Trying to add a fragment to my fragment container FrameLayout

相关问题