假如要實現一個這樣的功能,在主頁面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的方法需要大家們獨立創新,莫的感情啊,再見。