在 Android 3.0 及更高版本上,android 团队正在努力推动您应该使用片段而不是活动。我认为这很有用,但我希望能够在我的应用程序中处理点击事件。我在我的应用程序的右侧使用了一个列表片段,因此在承载该片段的活动中发生了 onclick(或任何点击侦听器)。因此,我不得不从将项目放入 XML 转向使用片段管理器。
在设计文件中,他们展示了这张图片:
http://developer.android.com/training/basics/fragments/fragment-ui.html
我想要的是 Fragment A/B 平板电脑 UI。但是,此页面中没有任何地方实际上为您提供了这样做的示例 - 片段管理器似乎一次只能处理一个片段 - 这与图片所描绘的完全相反。这让我觉得它在 XML 中使用......但是我将如何获得 onclick?这些文件对我来说没有多大意义。它显示一件事,然后说另一件事。如果我想删除平板电脑上的 Fragment A 怎么办?添加尚不存在的片段 C?如果您尝试使用片段管理器,这甚至可能吗????
如果片段管理器使用超过 1 个片段,我想我不明白,如果是这样,我应该如何使用它来获取图片中的项目,如平板电脑 - 左侧 (A) 是列表视图,而对(B)是什么。如果没有片段的 ID,我将无法访问它。
不确定这是否相关,但这是我的一些代码:
将片段添加到我在指南中制作的单个框架布局中
//Activity
FragLaunch launchPane = new FragLaunch();
// In case this activity was started with special instructions from an Intent,
// pass the Intent's extras to the fragment as arguments
// firstFragment.setArguments(getIntent().getExtras());
// Add the fragment to the 'fragment_container' FrameLayout
getFragmentManager().beginTransaction()
.add(R.id.launch_frag_container, launchPane).commit();
}
此外,在 7" 平板电脑的纵向模式下,我希望它使用可滑动的查看器。当我用 XML 设计它时,它就像一个魅力,但现在我必须访问它不起作用的列表片段(没办法访问,因为我不能有两个片段)
FragLaunch 的内容视图的 XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:gravity="center_vertical"
android:orientation="vertical" >
<TextView
android:id="@+id/initial_directions"
style="@style/textScalar.Roboto.Light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/initial_directions"
android:layout_marginBottom="30dp"
tools:context=".Launch" />
</LinearLayout>
我想让这个在照片中显示为片段 A:片段的 FragHistory.java/xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/spamhistory"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Spam History" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:drawSelectorOnTop="false" />
</LinearLayout>
有人对此有任何见解吗?