From 118936845ef52992e06b2d77d8bdd3cf1c7e2044 Mon Sep 17 00:00:00 2001 From: nich Date: Mon, 3 Feb 2020 17:15:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E4=B8=80=E4=BA=9B=E9=97=AA?= =?UTF-8?q?=E9=80=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/gh/base/fragment/BaseFragment.java | 2 +- app/src/main/java/com/gh/common/util/TextHelper.kt | 4 ++-- .../main/java/com/gh/gamecenter/baselist/ListAdapter.java | 6 ++++++ .../java/com/gh/gamecenter/personalhome/UserHomeFragment.kt | 2 +- .../java/com/gh/gamecenter/qa/search/AskSearchFragment.java | 3 ++- 5 files changed, 12 insertions(+), 5 deletions(-) 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); }