diff --git a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListViewHolder.kt b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListViewHolder.kt index 362d844bcf..962e94478d 100644 --- a/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/home/slide/HomeSlideListViewHolder.kt @@ -92,7 +92,7 @@ class HomeSlideListViewHolder(val binding: HomeSlideListBinding) : BaseRecyclerV // 缩放控制 fun updateZoomAnimation() { val childCount = binding.recyclerView.childCount - val width = binding.recyclerView.getChildAt(0).width + val width = binding.recyclerView.getChildAt(0)?.width ?: return val padding = (binding.recyclerView.width - width) / 2 for (j in 0 until childCount) { diff --git a/app/src/main/java/com/gh/gamecenter/mygame/MyPlayedGameAdapter.kt b/app/src/main/java/com/gh/gamecenter/mygame/MyPlayedGameAdapter.kt index 397c3b429c..925e778d91 100644 --- a/app/src/main/java/com/gh/gamecenter/mygame/MyPlayedGameAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/mygame/MyPlayedGameAdapter.kt @@ -189,7 +189,10 @@ class MyPlayedGameAdapter(context: Context, private val mViewModel: PlayedGameVi playedGameRemoveView.findViewById(R.id.remove_container).setOnClickListener { popupWindow.dismiss() - mViewModel.deletePlayedGame(mEntityList[holder.adapterPosition]) + val adapterPosition = holder.adapterPosition + if (adapterPosition != RecyclerView.NO_POSITION) { + mViewModel.deletePlayedGame(mEntityList[adapterPosition]) + } } popupWindow.isTouchable = true diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java index fbb4f9fa3f..423c6e7f32 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java @@ -788,7 +788,9 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter { } public void setFontSize(int fontsize) { - mWebSettings.setTextZoom(defaultTextZoom + 15 * fontsize); + if (mWebSettings != null) { + mWebSettings.setTextZoom(defaultTextZoom + 15 * fontsize); + } } public class JsInterface { 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 948a16a9e7..e88bedffd9 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 @@ -1,11 +1,12 @@ package com.gh.gamecenter.qa.search; import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; + import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; -import android.text.TextUtils; -import android.view.View; import com.gh.base.fragment.BaseFragment_TabLayout; import com.gh.common.util.EntranceUtils; @@ -88,7 +89,7 @@ public class AskSearchFragment extends BaseFragment_TabLayout { void updateSearch(String key) { for (Fragment fragment : mFragmentsList) { - if (fragment instanceof BaseAskSearchFragment) { + if (fragment instanceof BaseAskSearchFragment && isAdded()) { ((BaseAskSearchFragment) fragment).search(key); Bundle arguments = fragment.getArguments(); // 处于 state saved 状态的 fragment 不可 setArguments diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersContentFragment.java b/app/src/main/java/com/gh/gamecenter/servers/GameServersContentFragment.java index 329da72640..4caa7c67c0 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersContentFragment.java +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersContentFragment.java @@ -8,6 +8,13 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.DefaultItemAnimator; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.viewpager.widget.ViewPager; + import com.gh.base.fragment.BaseFragment; import com.gh.common.exposure.ExposureListener; import com.gh.common.util.DownloadItemUtils; @@ -29,12 +36,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; -import androidx.recyclerview.widget.DefaultItemAnimator; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; -import androidx.viewpager.widget.ViewPager; import butterknife.BindView; import butterknife.OnClick; @@ -136,6 +137,8 @@ public class GameServersContentFragment extends BaseFragment { public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); int position = mLayoutManager.findFirstVisibleItemPosition(); + if (RecyclerView.NO_POSITION == position) return; + List dataList = mAdapter.getDataList(); GameEntity gameEntity = dataList.get(position + 1); Long kaifuTimeHint = gameEntity.getKaifuTimeHint(); @@ -271,7 +274,7 @@ public class GameServersContentFragment extends BaseFragment { @Override public void loadError() { if (!isAdded()) return; - + super.loadError(); toast(R.string.loading_failed_hint); mKaiFuTimeLl.setVisibility(View.GONE);