Tôi đang chèn Những mảnh vỡ vào Hoạt động sử dụng mã này:Fragment mất hình ảnh động chuyển tiếp sau khi thay đổi cấu hình
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
FragmentManager fm = getFragmentManager();
String tag = "simple";
Fragment fr = fm.findFragmentByTag(tag);
if (fr == null)
{
SimpleFragment simpleFragment = new SimpleFragment();
FragmentTransaction transaction = fm.beginTransaction();
transaction.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out,
android.R.animator.fade_in, android.R.animator.fade_out);
transaction.add(R.id.main_layout, simpleFragment, tag);
transaction.addToBackStack(tag);
transaction.commit();
}
}
Những mảnh vỡ đang:
public class SimpleFragment extends ListFragment
{
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
getView().setBackgroundColor(Color.YELLOW);
}
}
Khi tôi bật đoạn từ backstack qua nút Back ngay sau khi ra mắt, sau đó mọi thứ đều ổn và tôi có thể thấy hoạt ảnh mờ dần. Nhưng nếu tôi xoay thiết bị và nhấn nút Quay lại thì phân đoạn sẽ biến mất mà không có hoạt ảnh.
Đây có phải là hành vi của Android hoặc tôi đang làm điều gì sai?
EDIT: Dường như sau khi xoay FragmentManager không khôi phục hoạt ảnh (enterAnim, exitAnim, popEnterAnim và popExitAnim) cho BackStackEntry.
FragmentManager bãi (không xoay):
Active Fragments in 4087d668:
#0: SimpleFragment{408883b0 #0 id=0x7f050000 simple}
mFragmentId=#7f050000 mContainerId#=7f050000 mTag=simple
mState=4 mIndex=0 mWho=android:fragment:0 mBackStackNesting=1
mAdded=true mRemoving=false mResumed=true mFromLayout=false mInLayout=false
mHidden=false mDetached=false mRetainInstance=false mRetaining=false mHasMenu=false
mFragmentManager=FragmentManager{4087d668 in ListViewFragmentsActivity{4087d588}}
[email protected]
[email protected]
mNextAnim=17498112
[email protected]
[email protected]
Added Fragments:
#0: SimpleFragment{408883b0 #0 id=0x7f050000 simple}
Back Stack:
#0: [email protected]
mName=simple mIndex=0 mCommitted=true
mEnterAnim=#10b0000 mExitAnim=#10b0001
Operations:
Op #0:
cmd=1 fragment=SimpleFragment{408883b0 #0 id=0x7f050000 simple}
enterAnim=17498112 exitAnim=17498113
popEnterAnim=17498112 popExitAnim=17498113
Back Stack Indices:
#0: [email protected]
FragmentManager misc state:
mCurState=5 mStateSaved=false mDestroyed=false
FragmentManager bãi (sau khi xoay):
Active Fragments in 40877f38:
#0: SimpleFragment{40878858 #0 id=0x7f050000 simple}
mFragmentId=#7f050000 mContainerId#=7f050000 mTag=simple
mState=4 mIndex=0 mWho=android:fragment:0 mBackStackNesting=1
mAdded=true mRemoving=false mResumed=true mFromLayout=false mInLayout=false
mHidden=false mDetached=false mRetainInstance=false mRetaining=false mHasMenu=false
mFragmentManager=FragmentManager{40877f38 in ListViewFragmentsActivity{40877e58}}
[email protected]
[email protected]
[email protected]
[email protected]
Added Fragments:
#0: SimpleFragment{40878858 #0 id=0x7f050000 simple}
Back Stack:
#0: [email protected]
mName=simple mIndex=0 mCommitted=false
Operations:
Op #0:
cmd=1 fragment=SimpleFragment{40878858 #0 id=0x7f050000 simple}
Back Stack Indices:
#0: [email protected]
FragmentManager misc state:
mCurState=5 mStateSaved=false mDestroyed=false
Tôi cũng gặp vấn đề tương tự. Bạn có may mắn tìm ra nó không? – khendricks
@khendricks Không, và bạn? – Max
Thật không may là không. Tôi bị sốc vì không có nhiều người phàn nàn về điều này. Tôi đã tạo một báo cáo lỗi cho vấn đề này. http://code.google.com/p/android/issues/detail?id=25994&can=4&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars – khendricks