我有一个布局添加片段的活动:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...
<fragment ... />
<TextView ... />
<ScrollView ... >
<RelativeLayout ... >
<fragment .... />
<fragment
android:id="@+id/namesFragment"
android:name="com.myapp.NamesFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/xxx"
tools:layout="@layout/fragment_names" />
</RelativeLayout>
</ScrollView>
在使用带有 API 18 的 genymotion 虚拟设备进行开发后,我在具有较旧 API 的实际设备上遇到了错误。我注意到 that onCreateVeiw
is not called before onPrepareOptionsMenu
,由于未设置某些变量而导致迷恋。
我已经用两个“常规”AVD 检查了它。一个使用 API 16,另一个使用 API 17。在 API 17onCreateVeiw
上会被调用,而在 API 16 上不会被调用。
知道为什么吗?API 17 是否强制某些默认执行路径或以某种方式更改了 Fragment 的生命周期? 当布局创建片段时,知道如何“强制”它吗?