opt
This commit is contained in:
@@ -127,4 +127,19 @@ public class FragmentStack {
|
||||
public void setFragmentStackTransactionListener( FragmentStackTransactionListener fragmentStackTransactionListener ) {
|
||||
this.mFragmentStackTransactionListener = fragmentStackTransactionListener;
|
||||
}
|
||||
|
||||
public void clearAll() {
|
||||
if ( mFragmentStack.isEmpty() ) {
|
||||
return;
|
||||
}
|
||||
mFragmentTransaction = mFragmentManager.beginTransaction();
|
||||
for ( FragmentDescriptor descriptor : mFragmentStack ) {
|
||||
mFragmentTransaction.remove( descriptor.getFragment() );
|
||||
}
|
||||
mFragmentTransaction.commitAllowingStateLoss();
|
||||
mCurrentFragment = null;
|
||||
if ( getFragmentStackTransactionListener() != null ) {
|
||||
getFragmentStackTransactionListener().onTransaction();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,11 @@ public class MogoFragmentManager implements IMogoFragmentManager {
|
||||
FragmentStack.getInstance().pop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearAll() {
|
||||
FragmentStack.getInstance().clearAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init( Context context ) {
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
|
||||
|
||||
rv_search_result.adapter = mAdapter
|
||||
tv_navi_navi.setOnClickListener {
|
||||
SearchServiceHolder.fragmentManager.clearAll()
|
||||
SearchServiceHolder.getNavi(activity!!)
|
||||
.startNavi(false)
|
||||
}
|
||||
|
||||
@@ -23,4 +23,9 @@ public interface IMogoFragmentManager extends IProvider {
|
||||
* 将当前 fragment 出栈
|
||||
*/
|
||||
void pop();
|
||||
|
||||
/**
|
||||
* 退出栈中所有fragment
|
||||
*/
|
||||
void clearAll();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user