我看到很多答案,但似乎沒有找到答案。我在我的一個片段中使用了新的FAB,並且希望在特定片段進入backstack時將其刪除,但是我不確定片段中的哪個方法在被添加到背堆棧並被其他片段替換時被調用。每當Fragment
被替換或添加的被稱爲當碎片進入後臺時刪除FAB
-2
A
回答
0
以下方法來返回堆棧
1)的onPause()
2)的onStop()
3)onDestroyView()
在y中的上述任何一種方法中調用您的FAB去除方法我們的Fragment
。
http://developer.android.com/guide/components/fragments.html#Creating
0
這裏是我的建議 -
首先,添加了動畫代碼和堆棧中監聽你的活動:
public class MainActivity extends AppCompatActivity
implements FragmentManager.OnBackStackChangedListener {
private FloatingActionButton mFab;
private Animation mShowFab;
private Animation mHideFab;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportFragmentManager().addOnBackStackChangedListener(this);
mShowFab = AnimationUtils.makeInAnimation(this, false);
mShowFab.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
mFab.setVisibility(View.VISIBLE);
}
});
mHideFab = AnimationUtils.makeOutAnimation(this, true);
mHideFab.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
mFab.setVisibility(View.INVISIBLE);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
}
});
}
public void showFab(boolean show) {
boolean visible = mFab.isShown();
if (show) {
if (!visible)
mFab.startAnimation(mShowFab);
} else {
if (visible)
mFab.startAnimation(mHideFab);
}
}
然後 - 根據堆棧中的深度 - 顯示或隱藏FAB:
@Override
public void onBackStackChanged() {
showFab(getSupportFragmentManager().getBackStackEntryCount() > 0);
}
相關問題
- 1. 如何刪除當前碎片中除當前碎片和第一碎片之外的所有碎片?
- 2. 更換Android FAB錨時更換碎片
- 3. Jetty 9刪除URI碎片
- 4. Android NPE當活動進入後臺時
- 5. 防止FAB在RecyclerView中滾動時出現碎片
- 6. 當應用程序進入後臺時運行後臺線程
- 7. 如何從後端堆棧中刪除所有以前的碎片,使當前碎片可見
- 8. Swift - 當應用程序進入後臺時進入視圖
- 9. 刪除碎片分配過濾
- 10. 從SOLR數據庫中刪除碎片
- 11. 如何從mongodb碎片中刪除塊
- 12. 從我的ListFragment中刪除碎片
- 13. 當應用程序進入後臺並進入前臺時調用UIViewController方法
- 14. 碎片後的碎片被破壞; GC收集它們時?
- 15. ViewPager應用程序在後臺時碎片被破壞?
- 16. Android:在從後臺彈出碎片時調用哪種方法
- 17. 當應用程序進入後臺時使計時器無效
- 18. 在viewpager中刪除碎片並刷新以前查看過的碎片
- 19. Mongodb刪除碎片 - 一次不能有一個以上的耗盡碎片
- 20. FAB暫時放置不當?
- 21. 當應用程序轉到後臺時刪除DOM元素
- 22. 當應用程序轉到後臺時刪除UIAlerts
- 23. 當我從後臺刪除程序時,My Receiver Class失敗
- 24. 當使用帶碎片的ViewPager時,碎片在刷卡時被破壞
- 25. applicationWillTerminate進入後臺
- 26. 防止從後臺堆棧中刪除最後一個片段
- 27. Android碎片 - 如果已經存在,則從碎片堆棧中移除碎片
- 28. 當應用程序進入後臺時取消API請求
- 29. 當應用程序進入後臺時顯示暫停菜單
- 30. 當應用程序進入後臺時運行MPMoviePlayer
你的問題是什麼? –
我想知道在調用fragment.replace()方法時調用的方法或者將片段添加到背堆棧中的方法 – Ravi