diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumFragment.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumFragment.kt index 8d5972768e..733155baf7 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumFragment.kt @@ -8,6 +8,7 @@ import androidx.recyclerview.widget.RecyclerView import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.gh.base.fragment.LazyFragment import com.gh.common.util.observeNonNull +import com.gh.common.util.tryCatchInRelease import com.gh.common.util.viewModelProvider import com.gh.common.view.GridSpacingItemColorDecoration import com.gh.gamecenter.R @@ -48,10 +49,12 @@ class ForumFragment: LazyFragment(), SwipeRefreshLayout.OnRefreshListener { super.initRealView() mUserViewModel?.loginObsUserinfo?.observe(this, Observer { - if (it?.data == null) { - mBinding?.followForumContainer?.visibility = View.GONE + if (!mIsFirst) { + if (it?.data == null) { + mBinding?.followForumContainer?.visibility = View.GONE + } + onRefresh() } - onRefresh() }) mViewModel?.followForumsLiveData?.observe(viewLifecycleOwner, Observer { @@ -138,9 +141,12 @@ class ForumFragment: LazyFragment(), SwipeRefreshLayout.OnRefreshListener { mHaveHotForum = false mBinding?.run { contentContainer.visibility = View.GONE - reuseLoading.root.visibility = View.VISIBLE + reuseLoading.root.visibility = if (refreshLayout.isRefreshing) View.GONE else View.VISIBLE } - mViewModel?.getData() + mBaseHandler.postDelayed({ + tryCatchInRelease { mViewModel?.getData() } + }, 500) + } private fun hideRefreshingLayout() { @@ -193,10 +199,12 @@ class ForumFragment: LazyFragment(), SwipeRefreshLayout.OnRefreshListener { mBinding?.run { officialForumContainer.visibility = View.VISIBLE officialMore.setOnClickListener { startActivity(ForumListActivity.getIntent(requireContext(), ForumListActivity.TYPE_OFFICIAL)) } + if (officialForumRv.adapter !is OfficialForumAdapter) { + officialForumRv.addItemDecoration(GridSpacingItemColorDecoration(requireContext(), 0, 16, R.color.transparent)) + } officialForumRv.layoutManager = GridLayoutManager(requireContext(), 2) val newList = if (list.size > 6) list.subList(0, 6) else list officialForumRv.adapter = OfficialForumAdapter(requireContext(), "社区-论坛-热门论坛", newList) - officialForumRv.addItemDecoration(GridSpacingItemColorDecoration(requireContext(), 0, 16, R.color.transparent)) } } diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/OfficialForumAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/home/OfficialForumAdapter.kt index e48ea70c16..20b49f81e3 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/OfficialForumAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/OfficialForumAdapter.kt @@ -36,6 +36,8 @@ class OfficialForumAdapter(context: Context, entity = forumEntity executePendingBindings() + forumIv.displayGameIcon(forumEntity.icon, null) + root.setOnClickListener { mContext.startActivity(ForumDetailActivity.getIntent(mContext, forumEntity.id, entrance)) } diff --git a/app/src/main/res/layout/fragment_forum.xml b/app/src/main/res/layout/fragment_forum.xml index 0a0a0bd72e..38b454554d 100644 --- a/app/src/main/res/layout/fragment_forum.xml +++ b/app/src/main/res/layout/fragment_forum.xml @@ -71,8 +71,6 @@ -