fix:调整UI问题

This commit is contained in:
Max
2023-12-27 21:15:00 +08:00
parent 96de9e153c
commit e4cb690b68
18 changed files with 88 additions and 41 deletions

View File

@@ -25,13 +25,16 @@ class HomeFriendsGameTabAdapter :
}
}
override fun setNewData(data: MutableList<HomeGameTab>?) {
super.setNewData(data)
fun selectItem(position: Int?) {
val item = getItem(position ?: -1)
if (item == null || position == null) {
val oldPosition = selectPosition
this.selectGameId = null
this.selectPosition = null
if (oldPosition != null) {
notifyItemChanged(oldPosition)
}
fun selectItem(position: Int) {
val item = getItem(position) ?: return
if (position == selectPosition) {
} else if (position == selectPosition) {
this.selectGameId = null
this.selectPosition = null
notifyItemChanged(position)

View File

@@ -33,7 +33,7 @@ import com.nnbc123.library.annatation.ActLayoutRes
@ActLayoutRes(R.layout.home_fragment)
class HomeFragment : BaseBindingFragment<HomeFragmentBinding>() {
override fun initiate() {
ImmersionBar.with(this).titleBarMarginTop(mBinding.magicIndicator).init()
ImmersionBar.with(this).titleBarMarginTop(mBinding.vTitleBarTop).init()
initTab()
initEvent()
}

View File

@@ -26,6 +26,7 @@ import com.nnbc123.core.statistic.StatisticManager
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
import com.nnbc123.core.utils.net.ServerException
import com.nnbc123.library.annatation.ActLayoutRes
import com.scwang.smartrefresh.layout.listener.OnRefreshListener
/**
* Created by Max on 2023/12/18 17:59
@@ -59,14 +60,20 @@ class FriendsFragment : BaseBindingFragment<HomeFriendsFragmentBinding>() {
}
mBinding.refreshLayout.isEnableLoadmore = false
mBinding.refreshLayout.isEnableOverScrollBounce = false
mBinding.refreshLayout.setOnRefreshListener {
mBinding.refreshLayout.setOnRefreshListener { view ->
mBinding.refreshLayout.finishRefresh()
loadData()
childFragmentManager.fragments.forEach {
if (it is OnRefreshListener) {
it.onRefresh(view)
}
}
}
childFragmentManager
.beginTransaction()
.replace(R.id.fragment_container_view, FriendsListFragment())
.commitAllowingStateLoss()
loadData()
}
private fun initFilterTab() {
@@ -161,20 +168,17 @@ class FriendsFragment : BaseBindingFragment<HomeFriendsFragmentBinding>() {
dismiss()
when (it.id) {
R.id.tv_all -> {
mBinding.tvGender.text = "全部"
filterGender = null
updateGender(null)
refreshListData()
}
R.id.tv_man -> {
mBinding.tvGender.text = "男生"
filterGender = 1
updateGender(1)
refreshListData()
}
R.id.tv_woman -> {
mBinding.tvGender.text = "女生"
filterGender = 2
updateGender(2)
refreshListData()
}
}
@@ -183,9 +187,21 @@ class FriendsFragment : BaseBindingFragment<HomeFriendsFragmentBinding>() {
genderPopup?.show(mBinding.tvGender, Gravity.BOTTOM)
}
override fun onResume() {
super.onResume()
loadData()
private fun updateGender(gender: Int?) {
filterGender = gender
when (gender) {
1 -> {
mBinding.tvGender.text = "男生"
}
2 -> {
mBinding.tvGender.text = "女生"
}
else -> {
mBinding.tvGender.text = "全部"
}
}
}
override fun onDestroy() {
@@ -197,6 +213,9 @@ class FriendsFragment : BaseBindingFragment<HomeFriendsFragmentBinding>() {
}
private fun loadData() {
// 重置条件
updateGender(null)
tabAdapter.selectItem(null)
if (homeViewModel.gameTabLiveData.value.isNullOrEmpty()) {
viewModel.getHomeGameTab()
}

View File

@@ -5,7 +5,8 @@ import android.view.LayoutInflater
import android.view.View
import androidx.core.view.isVisible
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.chuhai.utils.UiUtils
@@ -20,13 +21,16 @@ import com.nnbc123.core.statistic.StatisticManager
import com.nnbc123.core.statistic.protocol.StatisticsProtocol
import com.nnbc123.core.user.bean.UserInfo
import com.nnbc123.library.annatation.ActLayoutRes
import com.scwang.smartrefresh.layout.api.RefreshLayout
import com.scwang.smartrefresh.layout.listener.OnRefreshListener
/**
* Created by Max on 2023/12/18 19:35
* Desc:
**/
@ActLayoutRes(R.layout.home_friends_list_fragment)
class FriendsListFragment : BaseBindingFragment<HomeFriendsListFragmentBinding>() {
class FriendsListFragment : BaseBindingFragment<HomeFriendsListFragmentBinding>(),
OnRefreshListener {
private val adapter = HomeFriendsUserAdapter()
private val viewModel: FriendsViewModel by activityViewModels()
private var rvDelegate: RVDelegate<UserInfo>? = null
@@ -78,9 +82,6 @@ class FriendsListFragment : BaseBindingFragment<HomeFriendsListFragmentBinding>(
private fun initEmptyView() {
headerEmptyView = LayoutInflater.from(requireContext())
.inflate(R.layout.home_friends_list_item_empty, null)
headerEmptyView?.isVisible = false
adapter.addHeaderView(headerEmptyView)
adapter.headerLayout.clipChildren = false
}
private fun initEvent() {
@@ -98,17 +99,20 @@ class FriendsListFragment : BaseBindingFragment<HomeFriendsListFragmentBinding>(
private fun initObserve() {
viewModel.newFriendLiveData.observe(this) {
if (it.data.isNullOrEmpty()) {
headerEmptyView?.isVisible = true
if (adapter.headerLayoutCount == 0) {
adapter.addHeaderView(headerEmptyView)
adapter.headerLayout.clipChildren = false
}
val list = viewModel.friendRecommendModeLiveData.value?.data?.toMutableList()
recommendTitleView?.isVisible = !list.isNullOrEmpty()
adapter.setNewData(list)
} else {
headerEmptyView?.isVisible = false
adapter.removeAllHeaderView()
rvDelegate?.loadData(it)
}
}
viewModel.friendRecommendModeLiveData.observe(this) {
if (headerEmptyView?.isVisible == true) {
if (adapter.headerLayoutCount != 0) {
recommendTitleView?.isVisible = !it.data.isNullOrEmpty()
adapter.setNewData(it.data?.toMutableList())
}
@@ -121,4 +125,11 @@ class FriendsListFragment : BaseBindingFragment<HomeFriendsListFragmentBinding>(
viewModel.getFriendRecommendMore()
}
}
override fun onRefresh(refreshlayout: RefreshLayout?) {
if (isVisible && lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)) {
// 刷新下更多推荐
viewModel.getFriendRecommendMore()
}
}
}

View File

@@ -146,7 +146,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
getUserInfo();
initAttentionView();
initNestScrollView();
setEditButton(identityState, true);
setEditButton(identityState, false);
setTitleVisible(false);
// initViewPager(true);
if (userId != AuthModel.get().getCurrentUid() && !VipHelper.isHideLookUser()) {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 924 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#66000000" />
<corners android:radius="@dimen/dp_8" />
</shape>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#66000000" />
<corners android:radius="@dimen/dp_9" />
</shape>

View File

@@ -30,6 +30,7 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="-7dp"
android:clipToPadding="false"
android:orientation="horizontal"
android:paddingHorizontal="@dimen/dp_5"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"

View File

@@ -139,7 +139,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_goneMarginStart="@dimen/dp_15"
tools:drawableRight="@drawable/ic_gender_male"
tools:text="KiKing天地天地King天地天地ng天地天地" />
tools:text="KiKinKiKing地" />
<TextView
android:id="@+id/tv_constellation"
@@ -164,6 +164,7 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_26"
android:layout_gravity="end"
android:layout_marginEnd="@dimen/dp_14"
android:background="@drawable/bg_attention"
android:drawableStart="@drawable/icon_new_attention"
android:drawablePadding="2dp"
@@ -176,7 +177,6 @@
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/tv_nick"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tv_constellation"
app:layout_constraintTop_toTopOf="@id/tv_nick"
tools:visibility="visible" />

View File

@@ -14,13 +14,20 @@
app:layout_constraintDimensionRatio="375:250"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/v_title_bar_top"
android:layout_width="match_parent"
android:layout_height="1px"
app:layout_constraintTop_toTopOf="parent" />
<com.nnbc123.app.ui.widget.magicindicator.MagicIndicator
android:id="@+id/magic_indicator"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_44"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@id/v_title_bar_top" />
<LinearLayout
android:id="@+id/title_bar"

View File

@@ -8,10 +8,10 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.scwang.smartrefresh.layout.header.ClassicsHeader
<com.nnbc123.app.home.refresh.HomeRefreshHeader
android:id="@+id/refresh_header"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="47dp" />
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/coordinator_layout"
@@ -75,6 +75,7 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_6"
android:clipToPadding="false"
android:orientation="horizontal"
android:paddingHorizontal="@dimen/dp_10"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"

View File

@@ -24,7 +24,7 @@
android:layout_height="@dimen/dp_17"
android:layout_marginTop="@dimen/dp_4"
android:layout_marginEnd="@dimen/dp_4"
android:background="@drawable/base_shape_4d000000_9dp"
android:background="@drawable/base_shape_66000000_9dp"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="@id/iv_avatar"
@@ -129,7 +129,7 @@
android:layout_marginStart="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_4"
android:layout_marginBottom="@dimen/dp_5"
android:background="@drawable/base_shape_4d000000_8dp"
android:background="@drawable/base_shape_66000000_8dp"
android:ellipsize="end"
android:gravity="center_vertical"
android:includeFontPadding="false"

View File

@@ -13,11 +13,6 @@
android:layout_width="match_parent"
android:layout_height="47dp" />
<!-- <com.scwang.smartrefresh.layout.header.ClassicsHeader-->
<!-- android:id="@+id/refresh_header"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content" />-->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/coordinator_layout"
android:layout_width="match_parent"

View File

@@ -537,7 +537,5 @@ object HomeModel : BaseModel() {
*/
@GET("/home/game")
suspend fun getHomeGame(): ServiceResult<HomeGameInfo>
}
}