我有一个活动一次托管一个片段,并在两个片段之间交换。片段A使用按钮启动片段B,片段B使用按钮或后退按钮启动片段A.
使用自定义按钮从Fragment A到B以及从B到A时,一切正常。问题是我使用后退按钮从片段B转到A(片段A将事务添加到后栈)。
当在片段B上按下后退按钮时,我得到了几个“找不到类android.transition.Transition”异常和“无法解决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
答案 0 :(得分:1)
有点晚了,但我可能会有所收获。不知道是什么原因引起了这个问题,我稍后会做一些研究,但是在我更新了android-support lib之后,我的Project发生了同样的错误。使用旧版本(在HoloEverywhere库中)可正常工作。 尝试使用较旧版本的android-support来查看是否效果更好。也许在最近的版本中有些东西被弃用了,但我不确定。