Skip to content

Commit c5fc08b

Browse files
committed
see 10/07 log
1 parent 2b3b5a7 commit c5fc08b

File tree

4 files changed

+37
-21
lines changed

4 files changed

+37
-21
lines changed

app/src/main/java/com/blankj/androidutilcode/core/fragment/ChildFragment.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
* </pre>
2222
*/
2323
public class ChildFragment extends BaseFragment
24-
implements FragmentUtils.OnBackClickListener{
24+
implements FragmentUtils.OnBackClickListener {
2525

2626
private TextView tvAboutFragment;
2727

@@ -61,10 +61,10 @@ public void onWidgetClick(View view) {
6161
tvAboutFragment.setText("");
6262
switch (view.getId()) {
6363
case R.id.btn_show_about_fragment:
64-
tvAboutFragment.setText("lastAdd: " + FragmentUtils.getTop(getFragmentManager()).getClass().getSimpleName()
65-
+ "\nlastAddInStack: " + (FragmentUtils.getTopInStack(getFragmentManager()) != null ? FragmentUtils.getTopInStack(getFragmentManager()).getClass().getSimpleName() : "null")
66-
+ "\ntopShow: " + FragmentUtils.getTopShow(getFragmentManager()).getClass().getSimpleName()
67-
+ "\ntopShowInStack: " + (FragmentUtils.getTopShowInStack(getFragmentManager()) != null ? FragmentUtils.getTopShowInStack(getFragmentManager()).getClass().getSimpleName() : "null")
64+
tvAboutFragment.setText("top: " + FragmentUtils.getSimpleName(FragmentUtils.getTop(getFragmentManager()))
65+
+ "\ntopInStack: " + FragmentUtils.getSimpleName(FragmentUtils.getTopInStack(getFragmentManager()))
66+
+ "\ntopShow: " + FragmentUtils.getSimpleName(FragmentUtils.getTopShow(getFragmentManager()))
67+
+ "\ntopShowInStack: " + FragmentUtils.getSimpleName(FragmentUtils.getTopShowInStack(getFragmentManager()))
6868
+ "\n---all of fragments---\n"
6969
+ FragmentUtils.getAllFragments(getFragmentManager()).toString()
7070
+ "\n----------------------\n\n"

app/src/main/java/com/blankj/androidutilcode/core/fragment/FragmentActivity.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,12 @@ public void onWidgetClick(View view) {
7575
}
7676

7777

78-
@Override
79-
public void onBackPressed() {
80-
// if (!FragmentUtils.dispatchBackPress(getSupportFragmentManager())) {
81-
// super.onBackPressed();
82-
// }
83-
}
78+
// @Override
79+
// public void onBackPressed() {
80+
//// if (!FragmentUtils.dispatchBackPress(getSupportFragmentManager())) {
81+
//// super.onBackPressed();
82+
//// }
83+
// }
8484

8585
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
8686
= new BottomNavigationView.OnNavigationItemSelectedListener() {

app/src/main/java/com/blankj/androidutilcode/core/fragment/RootFragment.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,10 @@ public void onWidgetClick(View view) {
7575
tvAboutFragment.setText("");
7676
switch (view.getId()) {
7777
case R.id.btn_show_about_fragment:
78-
tvAboutFragment.setText("top: " + FragmentUtils.getTop(getFragmentManager()).getClass().getSimpleName()
79-
+ "\ntopInStack: " + (FragmentUtils.getTopInStack(getFragmentManager()) != null ? FragmentUtils.getTopInStack(getFragmentManager()).getClass().getSimpleName() : "null")
80-
+ "\ntopShow: " + (FragmentUtils.getTopShow(getFragmentManager()) != null ? FragmentUtils.getTopShow(getFragmentManager()).getClass().getSimpleName() : "null")
81-
+ "\ntopShowInStack: " + (FragmentUtils.getTopShowInStack(getFragmentManager()) != null ? FragmentUtils.getTopShowInStack(getFragmentManager()).getClass().getSimpleName() : "null")
78+
tvAboutFragment.setText("top: " + FragmentUtils.getSimpleName(FragmentUtils.getTop(getFragmentManager()))
79+
+ "\ntopInStack: " + FragmentUtils.getSimpleName(FragmentUtils.getTopInStack(getFragmentManager()))
80+
+ "\ntopShow: " + FragmentUtils.getSimpleName(FragmentUtils.getTopShow(getFragmentManager()))
81+
+ "\ntopShowInStack: " + FragmentUtils.getSimpleName(FragmentUtils.getTopShowInStack(getFragmentManager()))
8282
+ "\n---all of fragments---\n"
8383
+ FragmentUtils.getAllFragments(getFragmentManager()).toString()
8484
+ "\n----------------------\n\n"

utilcode/src/main/java/com/blankj/utilcode/util/FragmentUtils.java

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -779,11 +779,12 @@ private static void operate(final int type,
779779
Log.e("FragmentUtils", src.getClass().getName() + " is isRemoving");
780780
return;
781781
}
782-
String name = dest.getClass().getName();
782+
String name;
783783
Bundle args;
784784
switch (type) {
785785
case TYPE_ADD_FRAGMENT:
786786
for (Fragment fragment : dest) {
787+
name = fragment.getClass().getName();
787788
args = fragment.getArguments();
788789
Fragment fragmentByTag = fm.findFragmentByTag(name);
789790
if (fragmentByTag != null) {
@@ -815,6 +816,7 @@ private static void operate(final int type,
815816
}
816817
break;
817818
case TYPE_REPLACE_FRAGMENT:
819+
name = dest[0].getClass().getName();
818820
args = dest[0].getArguments();
819821
ft.replace(args.getInt(ARGS_ID), dest[0], name);
820822
if (args.getBoolean(ARGS_IS_ADD_STACK)) ft.addToBackStack(name);
@@ -883,8 +885,10 @@ private static Fragment getTopIsInStack(@NonNull final FragmentManager fm,
883885
for (int i = fragments.size() - 1; i >= 0; --i) {
884886
Fragment fragment = fragments.get(i);
885887
if (fragment != null) {
886-
if (isInStack && fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) {
887-
return fragment;
888+
if (isInStack) {
889+
if (fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) {
890+
return fragment;
891+
}
888892
} else {
889893
return fragment;
890894
}
@@ -922,11 +926,13 @@ private static Fragment getTopShowIsInStack(@NonNull final FragmentManager fm,
922926
&& fragment.isResumed()
923927
&& fragment.isVisible()
924928
&& fragment.getUserVisibleHint()) {
925-
if (isInStack && fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) {
929+
if (isInStack) {
930+
if (fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) {
931+
return fragment;
932+
}
933+
} else {
926934
return fragment;
927935
}
928-
} else {
929-
return fragment;
930936
}
931937
}
932938
return null;
@@ -1099,6 +1105,16 @@ public static void setBackground(@NonNull final Fragment fragment, final Drawabl
10991105
ViewCompat.setBackground(fragment.getView(), background);
11001106
}
11011107

1108+
/**
1109+
* 获取类名
1110+
*
1111+
* @param fragment fragment
1112+
* @return 类名
1113+
*/
1114+
public static String getSimpleName(final Fragment fragment) {
1115+
return fragment == null ? "null" : fragment.getClass().getSimpleName();
1116+
}
1117+
11021118
private static class Args {
11031119
int id;
11041120
boolean isHide;

0 commit comments

Comments
 (0)