Browse Source

NewsFeed的首页Tab与Page整理

liukai 2 years ago
parent
commit
6515993bea

+ 3 - 5
cpt_newsfeed/src/main/java/com/hongyegroup/cpt_newsfeed/ui/activity/NewsFeedPostActivity.kt

@@ -4,7 +4,8 @@ import android.content.Intent
 import android.os.Bundle
 import com.guadou.cs_cptservices.base.activity.YYBaseVDBActivity
 import com.guadou.lib_baselib.bean.DataBindingConfig
-import com.guadou.lib_baselib.utils.CommUtils
+import com.guadou.lib_baselib.ext.commContext
+import com.guadou.lib_baselib.ext.gotoActivity
 import com.guadou.lib_baselib.utils.KeyboardUtils
 import com.hongyegroup.cpt_newsfeed.BR
 import com.hongyegroup.cpt_newsfeed.R
@@ -20,10 +21,7 @@ class NewsFeedPostActivity : YYBaseVDBActivity<NewsFeedPostViewModel, ActivityNe
 
     companion object {
         fun startInstance() {
-            val context = CommUtils.getContext()
-            val intent = Intent(context, NewsFeedPostActivity::class.java)
-            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
-            context.startActivity(intent)
+            commContext().gotoActivity<NewsFeedPostActivity>()
         }
     }
 

+ 2 - 0
cpt_newsfeed/src/main/java/com/hongyegroup/cpt_newsfeed/ui/fragment/NewsFeedListFragment.kt

@@ -19,6 +19,8 @@ import com.scwang.smart.refresh.layout.listener.OnRefreshListener
 
 /**
  * 多类型的动态列表页面
+ *
+ *@param type 0 是朋友圈  1是已关注
  */
 class NewsFeedListFragment(private val type: Int) : YYBaseVDBLazyLoadingFragment<NewsFeedFollowingViewModel, FragmentNewsfeedFollowingBinding>(),
     IFragmentRefresh, OnRefreshListener, OnLoadMoreListener {

+ 39 - 36
cpt_newsfeed/src/main/java/com/hongyegroup/cpt_newsfeed/ui/fragment/NewsFeedMainFragment.kt

@@ -1,12 +1,10 @@
 package com.hongyegroup.cpt_newsfeed.ui.fragment
 
-import android.content.Intent
 import android.os.Bundle
 import android.view.View
-import androidx.viewpager.widget.ViewPager
+import androidx.viewpager2.widget.ViewPager2
 import com.guadou.cs_cptservices.base.fragment.YYBaseVDBFragment
 import com.guadou.cs_cptservices.interfaces.IFragmentRefresh
-import com.guadou.lib_baselib.base.Ghost
 import com.guadou.lib_baselib.bean.DataBindingConfig
 import com.guadou.lib_baselib.engine.toast
 import com.guadou.lib_baselib.ext.bindFragment
@@ -24,8 +22,8 @@ import com.hongyegroup.cpt_newsfeed.ui.activity.NewsFeedPostActivity
 class NewsFeedMainFragment : YYBaseVDBFragment<NewsFeedMainViewModel, FragmentNewsfeedMainBinding>(), IFragmentRefresh {
 
     private var mCurPage = 1
-    private lateinit var mNewsFeedMonentsFragment: NewsFeedListFragment
     private lateinit var mNewsFeedFollowingFragment: NewsFeedListFragment
+    private lateinit var mNewsFeedMonentsFragment: NewsFeedListFragment
     private lateinit var mNewsFeedProfileFragment: NewsFeedProfileFragment
 
     override fun getDataBindingConfig(): DataBindingConfig {
@@ -43,19 +41,17 @@ class NewsFeedMainFragment : YYBaseVDBFragment<NewsFeedMainViewModel, FragmentNe
     }
 
     private fun initAdapter() {
-        mNewsFeedMonentsFragment = NewsFeedListFragment(0)
         mNewsFeedFollowingFragment = NewsFeedListFragment(1)
+        mNewsFeedMonentsFragment = NewsFeedListFragment(0)
         mNewsFeedProfileFragment = NewsFeedProfileFragment("8558", true)
 
         mViewModel.mFragments.add(mNewsFeedMonentsFragment)
         mViewModel.mFragments.add(mNewsFeedFollowingFragment)
         mViewModel.mFragments.add(mNewsFeedProfileFragment)
 
-        mBinding.viewPager.bindFragment(childFragmentManager, mViewModel.mFragments)
+        mBinding.viewPager.bindFragment(childFragmentManager, this.lifecycle, mViewModel.mFragments)
 
-        mBinding.viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
-            override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {}
-            override fun onPageScrollStateChanged(state: Int) {}
+        mBinding.viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
             override fun onPageSelected(position: Int) {
                 mCurPage = position
                 setIndicator(position)
@@ -76,28 +72,28 @@ class NewsFeedMainFragment : YYBaseVDBFragment<NewsFeedMainViewModel, FragmentNe
         mCurPage = position
         when (position) {
             0 -> {
-                mBinding.textMoments.setTextColor(CommUtils.getColor(R.color.app_blue))
-                mBinding.viewFollowLine.visibility = View.VISIBLE
-                mBinding.textFollowing.setTextColor(CommUtils.getColor(R.color.gray_88))
-                mBinding.viewForYouLine.visibility = View.GONE
-                mBinding.textPulished.setTextColor(CommUtils.getColor(R.color.gray_88))
-                mBinding.viewPublished.visibility = View.GONE
+                mBinding.textFlowing.setTextColor(CommUtils.getColor(R.color.app_blue))
+                mBinding.viewFollowingLine.visibility = View.VISIBLE
+                mBinding.textMoments.setTextColor(CommUtils.getColor(R.color.gray_88))
+                mBinding.viewMonentLine.visibility = View.GONE
+                mBinding.textProfile.setTextColor(CommUtils.getColor(R.color.gray_88))
+                mBinding.viewProfile.visibility = View.GONE
             }
             1 -> {
-                mBinding.textMoments.setTextColor(CommUtils.getColor(R.color.gray_88))
-                mBinding.viewFollowLine.visibility = View.GONE
-                mBinding.textFollowing.setTextColor(CommUtils.getColor(R.color.app_blue))
-                mBinding.viewForYouLine.visibility = View.VISIBLE
-                mBinding.textPulished.setTextColor(CommUtils.getColor(R.color.gray_88))
-                mBinding.viewPublished.visibility = View.GONE
+                mBinding.textFlowing.setTextColor(CommUtils.getColor(R.color.gray_88))
+                mBinding.viewFollowingLine.visibility = View.GONE
+                mBinding.textMoments.setTextColor(CommUtils.getColor(R.color.app_blue))
+                mBinding.viewMonentLine.visibility = View.VISIBLE
+                mBinding.textProfile.setTextColor(CommUtils.getColor(R.color.gray_88))
+                mBinding.viewProfile.visibility = View.GONE
             }
             else -> {
+                mBinding.textFlowing.setTextColor(CommUtils.getColor(R.color.gray_88))
+                mBinding.viewFollowingLine.visibility = View.GONE
                 mBinding.textMoments.setTextColor(CommUtils.getColor(R.color.gray_88))
-                mBinding.viewFollowLine.visibility = View.GONE
-                mBinding.textFollowing.setTextColor(CommUtils.getColor(R.color.gray_88))
-                mBinding.viewForYouLine.visibility = View.GONE
-                mBinding.textPulished.setTextColor(CommUtils.getColor(R.color.app_blue))
-                mBinding.viewPublished.visibility = View.VISIBLE
+                mBinding.viewMonentLine.visibility = View.GONE
+                mBinding.textProfile.setTextColor(CommUtils.getColor(R.color.app_blue))
+                mBinding.viewProfile.visibility = View.VISIBLE
             }
         }
     }
@@ -115,19 +111,29 @@ class NewsFeedMainFragment : YYBaseVDBFragment<NewsFeedMainViewModel, FragmentNe
      */
     inner class ClickProxy {
 
-        //切换到朋友圈
-        fun switchMoments() {
+        //返回页面
+        fun pageBack() {
+            mActivity.finish()
+        }
+
+        //去搜索页面
+        fun gotoSearchPage() {
+          toast("去搜索页面")
+        }
+
+        //切换已关注的
+        fun switchFollowing() {
             if (mCurPage == 0) {
-                mNewsFeedMonentsFragment.scrollTopRefresh()
+                mNewsFeedFollowingFragment.scrollTopRefresh()
             } else {
                 setCurrentPage(0)
             }
         }
 
-        //切换已关注的
-        fun switchFollowing() {
+        //切换到朋友圈
+        fun switchMoments() {
             if (mCurPage == 1) {
-                mNewsFeedFollowingFragment.scrollTopRefresh()
+                mNewsFeedMonentsFragment.scrollTopRefresh()
             } else {
                 setCurrentPage(1)
             }
@@ -144,10 +150,7 @@ class NewsFeedMainFragment : YYBaseVDBFragment<NewsFeedMainViewModel, FragmentNe
 
         //去发布页面
         fun gotoPostPage() {
-            Ghost.launchActivityForResult(mActivity, Intent(mActivity, NewsFeedPostActivity::class.java)) {
-                val name = it?.getStringExtra("name")
-                toast("获取回调 name:" + name)
-            }
+            NewsFeedPostActivity.startInstance()
         }
 
     }

+ 62 - 37
cpt_newsfeed/src/main/res/layout/fragment_newsfeed_main.xml

@@ -31,91 +31,116 @@
         <androidx.constraintlayout.widget.ConstraintLayout
             android:layout_width="match_parent"
             android:layout_height="@dimen/d_46dp"
-            android:paddingLeft="@dimen/d_40dp"
-            android:paddingRight="@dimen/d_40dp">
+            android:paddingLeft="@dimen/d_15dp"
+            android:paddingRight="@dimen/d_15dp">
+
+            <ImageView
+                android:id="@+id/iv_title_back"
+                style="@style/SelectableItemBackgroundLess"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d_3dp"
+                android:layout_marginTop="@dimen/d_12dp"
+                android:src="@mipmap/iv_blue_back"
+                android:theme="@style/RippleWhite"
+                app:layout_constraintLeft_toLeftOf="parent"
+                app:layout_constraintTop_toTopOf="parent"
+                binding:clicks="@{click.pageBack}" />
+
+            <ImageButton
+                android:id="@+id/iv_title_search"
+                style="@style/SelectableItemBackgroundLess"
+                android:layout_width="@dimen/d_20dp"
+                android:layout_height="@dimen/d_20dp"
+                android:src="@drawable/title_blue_search_icon"
+                android:theme="@style/RippleWhite"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintRight_toRightOf="parent"
+                app:layout_constraintTop_toTopOf="parent"
+                binding:clicks="@{click.gotoSearchPage}" />
 
             <com.guadou.lib_baselib.font_text_view.TextViewBold
-                android:id="@+id/text_moments"
+                android:id="@+id/text_flowing"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:onClick="@{()->click.switchMoments()}"
-                android:text="朋友圈"
+                android:text="已关注"
                 android:textColor="@color/gray_88"
                 android:textSize="@dimen/d_16sp"
                 app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintLeft_toLeftOf="parent"
-                app:layout_constraintRight_toLeftOf="@id/text_following"
+                app:layout_constraintLeft_toRightOf="@id/iv_title_back"
+                app:layout_constraintRight_toLeftOf="@id/text_moments"
                 app:layout_constraintTop_toTopOf="parent" />
 
             <View
-                android:id="@+id/view_follow_line"
+                android:id="@+id/view_following_line"
                 android:layout_width="0dp"
                 android:layout_height="2.5dp"
                 android:background="@drawable/shape_blue_round3"
                 android:visibility="gone"
                 app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintLeft_toLeftOf="@id/text_moments"
-                app:layout_constraintRight_toRightOf="@id/text_moments" />
+                app:layout_constraintLeft_toLeftOf="@id/text_flowing"
+                app:layout_constraintRight_toRightOf="@id/text_flowing" />
 
             <com.guadou.lib_baselib.font_text_view.TextViewBold
-                android:id="@+id/text_following"
+                android:id="@+id/text_moments"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:onClick="@{()->click.switchFollowing()}"
-                android:text="已关注"
+                android:text="朋友圈"
                 android:textColor="@color/app_blue"
                 android:textSize="@dimen/d_16sp"
                 app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintLeft_toRightOf="@id/text_moments"
-                app:layout_constraintRight_toLeftOf="@id/text_pulished"
+                app:layout_constraintLeft_toRightOf="@id/text_flowing"
+                app:layout_constraintRight_toLeftOf="@id/text_profile"
                 app:layout_constraintTop_toTopOf="parent" />
 
-            <!--  已关注的数量    -->
-            <com.guadou.lib_baselib.font_text_view.TextViewBold
-                android:layout_width="18dp"
-                android:layout_height="11.5dp"
-                android:background="@drawable/unread_red_bg"
-                android:gravity="center"
-                android:text="9"
-                android:textColor="@color/white"
-                android:textSize="@dimen/d_9sp"
-                app:layout_constraintBottom_toTopOf="@id/text_following"
-                app:layout_constraintLeft_toRightOf="@id/text_following"
-                app:layout_constraintRight_toRightOf="@id/text_following"
-                app:layout_constraintTop_toTopOf="@id/text_following" />
+            <!--            &lt;!&ndash;  已关注的数量    &ndash;&gt;-->
+            <!--            <com.guadou.lib_baselib.font_text_view.TextViewBold-->
+            <!--                android:layout_width="18dp"-->
+            <!--                android:layout_height="11.5dp"-->
+            <!--                android:background="@drawable/unread_red_bg"-->
+            <!--                android:gravity="center"-->
+            <!--                android:text="9"-->
+            <!--                android:textColor="@color/white"-->
+            <!--                android:textSize="@dimen/d_9sp"-->
+            <!--                app:layout_constraintBottom_toTopOf="@id/text_following"-->
+            <!--                app:layout_constraintLeft_toRightOf="@id/text_following"-->
+            <!--                app:layout_constraintRight_toRightOf="@id/text_following"-->
+            <!--                app:layout_constraintTop_toTopOf="@id/text_following" />-->
 
             <View
-                android:id="@+id/view_for_you_line"
+                android:id="@+id/view_monent_line"
                 android:layout_width="0dp"
                 android:layout_height="2.5dp"
                 android:background="@drawable/shape_blue_round3"
                 android:visibility="visible"
                 app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintLeft_toLeftOf="@id/text_following"
-                app:layout_constraintRight_toRightOf="@id/text_following" />
+                app:layout_constraintLeft_toLeftOf="@id/text_moments"
+                app:layout_constraintRight_toRightOf="@id/text_moments" />
 
             <com.guadou.lib_baselib.font_text_view.TextViewBold
-                android:id="@+id/text_pulished"
+                android:id="@+id/text_profile"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:onClick="@{()->click.switchPulished()}"
-                android:text="我的发布"
+                android:text="个人信息"
                 android:textColor="@color/gray_88"
                 android:textSize="@dimen/d_16sp"
                 app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintLeft_toRightOf="@id/text_following"
-                app:layout_constraintRight_toRightOf="parent"
+                app:layout_constraintLeft_toRightOf="@id/text_moments"
+                app:layout_constraintRight_toLeftOf="@id/iv_title_search"
                 app:layout_constraintTop_toTopOf="parent" />
 
             <View
-                android:id="@+id/view_published"
+                android:id="@+id/view_profile"
                 android:layout_width="0dp"
                 android:layout_height="2.5dp"
                 android:background="@drawable/shape_blue_round3"
                 android:visibility="gone"
                 app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintLeft_toLeftOf="@id/text_pulished"
-                app:layout_constraintRight_toRightOf="@id/text_pulished" />
+                app:layout_constraintLeft_toLeftOf="@id/text_profile"
+                app:layout_constraintRight_toRightOf="@id/text_profile" />
 
         </androidx.constraintlayout.widget.ConstraintLayout>
 
@@ -172,7 +197,7 @@
 
             </com.google.android.material.appbar.AppBarLayout>
 
-            <androidx.viewpager.widget.ViewPager
+            <androidx.viewpager2.widget.ViewPager2
                 android:id="@+id/view_pager"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"

BIN
cs_cptServices/src/main/res/drawable-xhdpi/title_blue_search_icon.webp


BIN
cs_cptServices/src/main/res/drawable-xxhdpi/title_blue_search_icon.webp