2013-05-20 78 views
2

(所有我对我的英文不好对不起首先...)的Android几乎相同的代码,以适应不同的布局

如题,我知道下面的布局(一个或多个)不同的屏幕匹配:

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) 

在我的APP中,我使用ViewPagerAdapter来管理我的内容。

我的电话设备3页流量:

enter image description here

和当然,用户可以在同一时间只能看到1页。现在

,我想为7" 设定位不同的布局平板电脑:

enter image description here

我想提出的WebView到左的布局,并使其从ViewPagerAdapter隔离, 使它将所有的时间保持可见。

和其他2页将在布图设计权利放,并使其充当ViewPager(可向左滑动/右)。

布局无线的两个版本将使用相同的代码进行管理,但正如您所看到的,页面流程有一点不同。所以我必须做一些改变来归档我的目标。

这可能吗?

+0

http://developer.android.com/guide/practices/tablets-and-handsets.html 请参阅本 –

回答

0

为了以尽可能少的努力实现布局,您可能需要使用嵌套片段:无论您使用哪种设备,每个ViewPager面板都将由“智能”容器Fragment处理。

Nested fragments description on "Android developers"

容器片段处理,其中当创建视图,根据需要通过检查片段/浏览次数的id存在于当前加载的布局和创建/附接的片段的片段应该被加载的逻辑。

例如,在Android手机上,第一个面板的布局可能只包含一个R.id.title,而不是R.id.list标识符:容器片段可以通过检查findViewById(R。 id.list)为空并仅创建标题片段(在平板电脑上的结果不会为空)。

正如你所看到的,因为正确的布局文件是由Android的自动加载,你并不需要实现多逻辑:)

剩下的工作就是改变由ViewPager显示的页数的唯一任务具体取决于您的屏幕(手机/平板电脑)的几何形状,您可以在您的Activity的onCreate方法中进行操作。

请记住,如果您的应用的方向因设备旋转而发生更改,最后一步可能会非常棘手。

希望它可以帮助

相关问题