android-support-v4版本中的片段id。22

android-support-v4版本中的片段id。22,android,android-fragments,android-support-library,Android,Android Fragments,Android Support Library,有MainActivity(扩展FragmentActivity)和MainActivityFragment(扩展android.support.v4.app.Fragment)。MainActivityFragment的纵向和横向屏幕方向有不同的布局 在将android-support-v4 lib的版本从21.0.3切换到22.0.0后,我在旋转应用程序时得到以下stacktrace: java.lang.RuntimeException:无法启动活动 ... 原因:java.lang.Cl

有MainActivity(扩展FragmentActivity)和MainActivityFragment(扩展android.support.v4.app.Fragment)。MainActivityFragment的纵向和横向屏幕方向有不同的布局

在将android-support-v4 lib的版本从21.0.3切换到22.0.0后,我在旋转应用程序时得到以下stacktrace:

java.lang.RuntimeException:无法启动活动
...
原因:java.lang.ClassCastException:android.view.AbsSavedState$1无法强制转换为android.widget.ScrollView$SavedState
位于android.widget.ScrollView.onRestoreInstanceState(ScrollView.java:1758)
位于android.view.view.dispatchRestoreInstanceState(view.java:13740)
位于android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:2887)
在android.view.view.restoreHierarchyState(view.java:13718)
位于android.support.v4.app.Fragment.restoreViewState(Fragment.java:465)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:979)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1118)
位于android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1927)
位于android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:544)
位于android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236)
在android.app.Activity.performStart上(Activity.java:6006)
...
活动\u main.xml


布局/fragment\u main.xml


布局土地/fragment\u main.xml


因此,两个片段布局都有不同的根ID。但在support-lib-v4 22.0.0中,这似乎不再重要了。此外,只有通过传递R.id.fragment才能找到这两种布局的根视图。以下是代码,请参见下面的说明:

公共类活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@凌驾
受保护的void onStart(){
findViewById(R.id.relativeLayout);/(1)
findViewById(R.id.scrollView);/(2)
findviewbyd(R.id.fragment);/(3)
}
}
(1) -带rev。21返回纵向模式的RelativeLayout,横向模式为空;以rev。22在两种模式下都返回null

(2) -带rev。21对于纵向模式,返回null,横向滚动视图;以rev。22在两种模式下都返回null

(3) -带rev。21返回两种模式的内部带有片段的布局;在rev。22根据方向返回RelativeLayout或ScrollView


我的问题是:API的这种变化是否有文档记录?假设不是support library的bug,我是否应该更改布局/片段代码?

我的Android 4.1设备上的Android系统库(非support-lib-v4)中的活动和片段类与support-lib-v4的最新(22.1.1)版本具有相同的行为。所以,我猜“新”行为不是一个bug,而是修复