我有一个活动,每次托管一个片段,并在两个片段之间交换。片段A使用按钮启动片段B,片段B使用按钮或后退按钮启动片段A。
当使用自定义按钮从片段A转到B以及从B转到A时,一切都很正常。问题是当我使用back按钮从片段B转到A时(片段A将事务添加到后台堆栈)。
当在片段B上按下后退按钮时,我得到了几个“无法找到类android.transition.Transition”异常和“无法解决check-cast 1217警告,就像每个警告中的11个,它们不会使程序崩溃:

我不知道这意味着什么,也不知道如何解决这个问题。
以下是片段A开始片段B的方式:
mButtonNextFragment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getActivity().getSupportFragmentManager();
Fragment fragment = FragmentTwo.newInstance(mCount);
fragment.setTargetFragment(FragmentOne.this, 0);
fm.beginTransaction()
.addToBackStack("transaction1")
.replace(R.id.layout_fragmentContainer, fragment)
.commit();
}
});以下是片段B开始片段A的方式:
mButtonPrevFragment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getActivity().getSupportFragmentManager();
fm.beginTransaction()
.replace(R.id.layout_fragmentContainer, getTargetFragment())
.commit();
}
});下面是主机活动开始片段A的方式:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment_container);
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.layout_fragmentContainer);
if (fragment == null) {
fragment = new FragmentOne();
fm.beginTransaction()
.add(R.id.layout_fragmentContainer, fragment)
.commit();
}
}有人知道这个问题的原因吗?
以下是完整的错误日志:http://pastebin.com/CPtCUBYg
发布于 2015-03-28 02:54:21
有点晚了但我可能有点事要做。不确定这个问题的原因是什么,我稍后会做一些调查,但是在我的项目中,在我更新了android-support库之后,发生了同样的错误。使用旧版本(在HoloEverywhere库中)可以正常工作。尝试使用旧版本的android-support,看看是否运行得更好。也许在最近的版本中有一些东西被弃用了,但我不确定。
https://stackoverflow.com/questions/26747828
复制相似问题