2

(首先我很抱歉我的英语不好......)

作为标题,我知道以下布局以匹配不同的屏幕:

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 页流:

在此处输入图像描述

当然,用户只能同时看到一页。

现在,我想为 7" 平板电脑设置一些不同的布局:

在此处输入图像描述

我想将 WebView 放在布局的左侧,并使其与 ViewPagerAdapter 隔离,以便它始终保持可见。

另外2个页面将放在布局的右侧,并使其充当ViewPager(可以向左/向右滑动)。

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

那可能吗 ?

4

1 回答 1

0

为了尽可能少地实现布局,您可能希望使用嵌套片段:无论您使用什么设备,每个 ViewPager 面板都将由“智能”容器片段处理。

关于“Android 开发者”的嵌套片段描述

容器 Fragment 通过检查当前加载的布局中存在的 Fragments/Views 的 id 并根据需要创建/附加 Fragment 来处理在创建视图时应加载哪些片段的逻辑。

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

如您所见,由于Android会自动加载正确的布局文件,因此您不需要实现太多逻辑:)

剩下的唯一任务是根据屏幕(手机/平板电脑)的几何形状更改 ViewPager 显示的页面数,您可能在 Activity 的 onCreate 方法中执行此操作。

请记住,如果您的应用程序的方向由于设备旋转而发生变化,这最后一步可能会很棘手。

希望能帮助到你

于 2013-05-27T17:27:38.540 回答