Android底部fragment互相跳轉

假如要實現一個這樣的功能,在主頁面MainActivity創建了四個底部Fragment,ABCD,點擊B的時候有個按鈕想要實現跳轉D頁面,可以這樣實現。
首先要保證當前Activity啓動模式爲singleTask,詳細查看 https://www.jianshu.com/p/bd1cfc31b035
在MainActivity中重寫onNewIntent方法

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
    checkToggleMenu();// 切換
}
/**
 * 切換(從activity跳轉回來)
 */
private void checkToggleMenu(){

    int keyTo = getIntent().getIntExtra(KEY_ACTION, -1);
    if(keyTo != -1)
    {
        btns[preBtnIndex].setSelected(false);
        btns[keyTo].setSelected(true);
        try {
            if (mFragments[keyTo] == null) {
                mFragments[keyTo] = (Fragment) AppConfig.MAIN_TAB_FRAGMENTS[keyTo].newInstance();
            }
            // 切換內容
            switchContent(mFragments[mPrevious],
                    mFragments[keyTo]);
            mPrevious = keyTo;
        }
        catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        preBtnIndex = keyTo;
    }
}

我知道大家看不懂我這個返回跳轉的方法是什麼意思,其實這就是一個選擇位置fragment的方法
大家可以根據自己的使用習慣來修改,只需要拿回它返回的狀態數字就可以了,接下來是最主要的一個方法

Intent intent = AppIntent.getMainActivity(mContext);
intent.putExtra(MainActivity.KEY_ACTION, X);  //這個X就是當前fragment的索引
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

好了,最後要靠自己實現了,實現操作是可以用的,麻煩就在於切換fragment的方法需要大家們獨立創新,莫的感情啊,再見。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章