diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment.java b/app/src/main/java/com/gh/base/fragment/BaseFragment.java index 45d8fdd37a..4e726c12a7 100644 --- a/app/src/main/java/com/gh/base/fragment/BaseFragment.java +++ b/app/src/main/java/com/gh/base/fragment/BaseFragment.java @@ -52,7 +52,7 @@ public abstract class BaseFragment extends Fragment implements OnRequestCallB protected boolean isEverPause; @NonNull - protected String mEntrance; + protected String mEntrance = ""; protected final Handler mBaseHandler = new BaseFragment.BaseHandler(this); diff --git a/app/src/main/java/com/gh/common/util/TextHelper.kt b/app/src/main/java/com/gh/common/util/TextHelper.kt index c8236be0ae..afb1327030 100644 --- a/app/src/main/java/com/gh/common/util/TextHelper.kt +++ b/app/src/main/java/com/gh/common/util/TextHelper.kt @@ -91,8 +91,8 @@ object TextHelper { } @JvmStatic - fun highlightTextThatIsWrappedInsideWrapperByDefault(textView: TextView, text: String) { - textView.text = getHighlightedSpannableStringThatIsWrappedInsideWrapper(textView.context, text, "###", R.color.theme, object : SimpleCallback { + fun highlightTextThatIsWrappedInsideWrapperByDefault(textView: TextView, text: String?) { + textView.text = getHighlightedSpannableStringThatIsWrappedInsideWrapper(textView.context, text ?: "", "###", R.color.theme, object : SimpleCallback { override fun onCallback(arg: String) { val application = HaloApp.getInstance().application val cmb = application.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager diff --git a/app/src/main/java/com/gh/gamecenter/baselist/ListAdapter.java b/app/src/main/java/com/gh/gamecenter/baselist/ListAdapter.java index 003565e2d8..4bbe6c2d78 100644 --- a/app/src/main/java/com/gh/gamecenter/baselist/ListAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/baselist/ListAdapter.java @@ -61,6 +61,9 @@ public abstract class ListAdapter extends BaseRecyclerAdapter { @Override public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { + if (oldItemPosition >= mEntityList.size()) return false; + if (newItemPosition >= updateData.size()) return false; + DataType oldItem = mEntityList.get(oldItemPosition); DataType newItem = updateData.get(newItemPosition); return ListAdapter.this.areItemsTheSame(oldItem, newItem); @@ -68,6 +71,9 @@ public abstract class ListAdapter extends BaseRecyclerAdapter { @Override public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { + if (oldItemPosition >= mEntityList.size()) return false; + if (newItemPosition >= updateData.size()) return false; + DataType oldItem = mEntityList.get(oldItemPosition); DataType newItem = updateData.get(newItemPosition); return ListAdapter.this.areContentsTheSame(oldItem, newItem); diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeFragment.kt b/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeFragment.kt index b73f6af4b2..40ec5ff714 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/UserHomeFragment.kt @@ -204,7 +204,7 @@ class UserHomeFragment : NormalFragment() { val titleList = listOf("游戏评论", "问答", "视频") viewpager.offscreenPageLimit = fragmentList.size - viewpager.adapter = FragmentAdapter(fragmentManager, fragmentList, titleList) + viewpager.adapter = FragmentAdapter(childFragmentManager, fragmentList, titleList) viewpager.currentItem = position viewpager.doOnPageSelected { MtaHelper.onEvent("个人主页详情", "个人主页详情", titleList[it]) } tabLayout.setupWithViewPager(viewpager) diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchFragment.java b/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchFragment.java index 01e40963f2..948a16a9e7 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/search/AskSearchFragment.java @@ -91,7 +91,8 @@ public class AskSearchFragment extends BaseFragment_TabLayout { if (fragment instanceof BaseAskSearchFragment) { ((BaseAskSearchFragment) fragment).search(key); Bundle arguments = fragment.getArguments(); - if (arguments != null) { + // 处于 state saved 状态的 fragment 不可 setArguments + if (arguments != null && !fragment.isStateSaved()) { arguments.putString(EntranceUtils.KEY_SEARCHKEY, key); fragment.setArguments(arguments); }