我有一个目前仅在平板电脑(Honeycomb+)上受支持的应用程序。应用程序中的典型屏幕在 Activity 中有 2 个片段,就像新闻阅读器应用程序一样。Fragment A 的点击会在 Fragment B 中显示相应的内容。现在的问题是,我如何在手机上支持这个应用程序(Froyo+)?这与支持来自活动的片段正好相反。任何形式的帮助/建议都非常感谢。
问问题
153 次
2 回答
1
你必须做这样的事情:
- 创建一个布局,一个用于手机,一个用于平板电脑。
布局/main.xml:
<LinearLayout
android:id="@+id/handset"
[...]
>
</LinearLayout>
布局大/sw400dp:
<LinearLayout
[...]
>
<fragment android:name="com.bla.bla.FirstFragment"
android:id="@+id/first_fragment"
[...]
/>
<fragment android:name="com.bla.bla.SecondFragment"
android:id="@+id/second_fragment"
[...]
/>
</LinearLayout>
- 现在在您的 FragmentActivity 中检查这一点:
if (findViewById(R.id.handset) != null) {
// it's a handset device and you can add a Fragment to this View
}
FirstFragment firstFragment = new FirstFragment();
getSupportFragmentManager().beginTransaction().add(R.id.handset, firstFragment).commit();
- 如果
R.id.handset
返回 null 那么它是一个平板电脑,在这种情况下,静态添加的 Fragments 将由它们的 Fragments 类处理。
于 2013-01-04T19:37:10.070 回答
0
在手机上,平板电脑上每次更新片段的点击都会启动一个包含该片段的新活动。
这或多或少是唯一要做的事情: * 在一个活动中封装较少的片段,通常是一个片段 * 将这些新活动链接在一起。
您的活动将只是一种新的粘合剂,您将重用片段。
此外,请注意平板电脑应用程序中片段之间的通信,您必须在活动中移动其中的一部分。
于 2013-01-04T19:18:16.077 回答