提交 c5fc08be 编写于 作者: B Blankj

see 10/07 log

上级 2b3b5a7c
......@@ -21,7 +21,7 @@ import java.util.Random;
* </pre>
*/
public class ChildFragment extends BaseFragment
implements FragmentUtils.OnBackClickListener{
implements FragmentUtils.OnBackClickListener {
private TextView tvAboutFragment;
......@@ -61,10 +61,10 @@ public class ChildFragment extends BaseFragment
tvAboutFragment.setText("");
switch (view.getId()) {
case R.id.btn_show_about_fragment:
tvAboutFragment.setText("lastAdd: " + FragmentUtils.getTop(getFragmentManager()).getClass().getSimpleName()
+ "\nlastAddInStack: " + (FragmentUtils.getTopInStack(getFragmentManager()) != null ? FragmentUtils.getTopInStack(getFragmentManager()).getClass().getSimpleName() : "null")
+ "\ntopShow: " + FragmentUtils.getTopShow(getFragmentManager()).getClass().getSimpleName()
+ "\ntopShowInStack: " + (FragmentUtils.getTopShowInStack(getFragmentManager()) != null ? FragmentUtils.getTopShowInStack(getFragmentManager()).getClass().getSimpleName() : "null")
tvAboutFragment.setText("top: " + FragmentUtils.getSimpleName(FragmentUtils.getTop(getFragmentManager()))
+ "\ntopInStack: " + FragmentUtils.getSimpleName(FragmentUtils.getTopInStack(getFragmentManager()))
+ "\ntopShow: " + FragmentUtils.getSimpleName(FragmentUtils.getTopShow(getFragmentManager()))
+ "\ntopShowInStack: " + FragmentUtils.getSimpleName(FragmentUtils.getTopShowInStack(getFragmentManager()))
+ "\n---all of fragments---\n"
+ FragmentUtils.getAllFragments(getFragmentManager()).toString()
+ "\n----------------------\n\n"
......
......@@ -75,12 +75,12 @@ public class FragmentActivity extends BaseActivity {
}
@Override
public void onBackPressed() {
// if (!FragmentUtils.dispatchBackPress(getSupportFragmentManager())) {
// super.onBackPressed();
// }
}
// @Override
// public void onBackPressed() {
//// if (!FragmentUtils.dispatchBackPress(getSupportFragmentManager())) {
//// super.onBackPressed();
//// }
// }
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
......
......@@ -75,10 +75,10 @@ public class RootFragment extends BaseFragment
tvAboutFragment.setText("");
switch (view.getId()) {
case R.id.btn_show_about_fragment:
tvAboutFragment.setText("top: " + FragmentUtils.getTop(getFragmentManager()).getClass().getSimpleName()
+ "\ntopInStack: " + (FragmentUtils.getTopInStack(getFragmentManager()) != null ? FragmentUtils.getTopInStack(getFragmentManager()).getClass().getSimpleName() : "null")
+ "\ntopShow: " + (FragmentUtils.getTopShow(getFragmentManager()) != null ? FragmentUtils.getTopShow(getFragmentManager()).getClass().getSimpleName() : "null")
+ "\ntopShowInStack: " + (FragmentUtils.getTopShowInStack(getFragmentManager()) != null ? FragmentUtils.getTopShowInStack(getFragmentManager()).getClass().getSimpleName() : "null")
tvAboutFragment.setText("top: " + FragmentUtils.getSimpleName(FragmentUtils.getTop(getFragmentManager()))
+ "\ntopInStack: " + FragmentUtils.getSimpleName(FragmentUtils.getTopInStack(getFragmentManager()))
+ "\ntopShow: " + FragmentUtils.getSimpleName(FragmentUtils.getTopShow(getFragmentManager()))
+ "\ntopShowInStack: " + FragmentUtils.getSimpleName(FragmentUtils.getTopShowInStack(getFragmentManager()))
+ "\n---all of fragments---\n"
+ FragmentUtils.getAllFragments(getFragmentManager()).toString()
+ "\n----------------------\n\n"
......
......@@ -779,11 +779,12 @@ public final class FragmentUtils {
Log.e("FragmentUtils", src.getClass().getName() + " is isRemoving");
return;
}
String name = dest.getClass().getName();
String name;
Bundle args;
switch (type) {
case TYPE_ADD_FRAGMENT:
for (Fragment fragment : dest) {
name = fragment.getClass().getName();
args = fragment.getArguments();
Fragment fragmentByTag = fm.findFragmentByTag(name);
if (fragmentByTag != null) {
......@@ -815,6 +816,7 @@ public final class FragmentUtils {
}
break;
case TYPE_REPLACE_FRAGMENT:
name = dest[0].getClass().getName();
args = dest[0].getArguments();
ft.replace(args.getInt(ARGS_ID), dest[0], name);
if (args.getBoolean(ARGS_IS_ADD_STACK)) ft.addToBackStack(name);
......@@ -883,8 +885,10 @@ public final class FragmentUtils {
for (int i = fragments.size() - 1; i >= 0; --i) {
Fragment fragment = fragments.get(i);
if (fragment != null) {
if (isInStack && fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) {
return fragment;
if (isInStack) {
if (fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) {
return fragment;
}
} else {
return fragment;
}
......@@ -922,11 +926,13 @@ public final class FragmentUtils {
&& fragment.isResumed()
&& fragment.isVisible()
&& fragment.getUserVisibleHint()) {
if (isInStack && fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) {
if (isInStack) {
if (fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) {
return fragment;
}
} else {
return fragment;
}
} else {
return fragment;
}
}
return null;
......@@ -1099,6 +1105,16 @@ public final class FragmentUtils {
ViewCompat.setBackground(fragment.getView(), background);
}
/**
* 获取类名
*
* @param fragment fragment
* @return 类名
*/
public static String getSimpleName(final Fragment fragment) {
return fragment == null ? "null" : fragment.getClass().getSimpleName();
}
private static class Args {
int id;
boolean isHide;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册