show code block

2016年12月20日 星期二

Fragment 返回上一頁 - OnBackPressed

Fragment 返回上一頁 - OnBackPressed

前言:
Fragment由於不繼承Activity,他無法使用到OnBackPressed這個方法。



@Override
public void onBackPressed() {

}
P.S.  OnBackPressed就是手機上內建的上一頁按鈕。



這也是為什麼我個人非常不喜歡用Fragment的原因,新手也實在不推薦使用。以我來說唯一的使用時機大概是ViewPager 的分頁模式,單純拿來跑圖用的。最單純,最不會有問題。

ViewPager分頁

返回鈕有個最單純的方法在之前的網誌介紹過了,這邊就不贅述,但那方法只能「指定」你要回到哪一頁,並不能做到真正的返回上一頁的效果。








實作:
 @Override
public void onBackPressed() {

    int count = getFragmentManager().getBackStackEntryCount();

    if (count == 0) {
        super.onBackPressed();
        //additional code
    } else {
        getFragmentManager().popBackStack();
    }
}

/**
*count 就是你開Fragment的分頁數量
*/


Fragment一定是依附著Activity生存的,這個OnBackPressed請寫在Activity內。


END






就不提供Demo了,有問題請留言。

Fragment全集

Fragment的使用() ─ activity內放置Fragment

Fragment的使用() ─ activity內切換Fragment

Fragment 返回上一頁 OnBackPressed

Fragment
點擊穿透




沒有留言:

張貼留言

協程(coroutine) - 協程為什麼要學它?

 Coroutine 協程 再強調一次 協程就是由kotlin官方所提供的線程api //Thread Thread { }.start() //Executor val execu...