소스 검색

增加机构首页样式

Pq 1 년 전
부모
커밋
a16d70df76
30개의 변경된 파일571개의 추가작업 그리고 4개의 파일을 삭제
  1. BIN
      BaseLibrary/src/main/res/drawable-xhdpi/icon_arrow_down3.png
  2. BIN
      BaseLibrary/src/main/res/drawable-xxhdpi/icon_arrow_down3.png
  3. 1 0
      institution/build.gradle
  4. 21 0
      institution/src/main/java/com/cooleshow/institution/stu/bean/HomePageMode.java
  5. 9 0
      institution/src/main/java/com/cooleshow/institution/stu/constants/Constants.java
  6. 12 0
      institution/src/main/java/com/cooleshow/institution/stu/contract/HomeMusicContract.java
  7. 11 0
      institution/src/main/java/com/cooleshow/institution/stu/presenter/HomeMusicPresenter.java
  8. 23 2
      institution/src/main/java/com/cooleshow/institution/stu/ui/main/HomeCardFragment.java
  9. 35 2
      institution/src/main/java/com/cooleshow/institution/stu/ui/main/HomeFragment.java
  10. 61 0
      institution/src/main/java/com/cooleshow/institution/stu/ui/main/HomeMusicFragment.java
  11. 17 0
      institution/src/main/java/com/cooleshow/institution/stu/viewmodel/HomeViewModel.java
  12. BIN
      institution/src/main/res/drawable-xhdpi/jg_hot_ablum_title.png
  13. BIN
      institution/src/main/res/drawable-xhdpi/jg_hot_track_title.png
  14. BIN
      institution/src/main/res/drawable-xhdpi/jg_icon_search.png
  15. BIN
      institution/src/main/res/drawable-xhdpi/jg_latest_track_title.png
  16. BIN
      institution/src/main/res/drawable-xhdpi/jg_main_music_top_bg.png
  17. BIN
      institution/src/main/res/drawable-xhdpi/jg_practice_study_bt.png
  18. BIN
      institution/src/main/res/drawable-xhdpi/jg_recommend_title.png
  19. BIN
      institution/src/main/res/drawable-xxhdpi/jg_hot_ablum_title.png
  20. BIN
      institution/src/main/res/drawable-xxhdpi/jg_hot_track_title.png
  21. BIN
      institution/src/main/res/drawable-xxhdpi/jg_icon_search.png
  22. BIN
      institution/src/main/res/drawable-xxhdpi/jg_latest_track_title.png
  23. BIN
      institution/src/main/res/drawable-xxhdpi/jg_main_music_top_bg.png
  24. BIN
      institution/src/main/res/drawable-xxhdpi/jg_practice_study_bt.png
  25. BIN
      institution/src/main/res/drawable-xxhdpi/jg_recommend_title.png
  26. 6 0
      institution/src/main/res/drawable/shape_ff76a6_to_ff3c81_14dp.xml
  27. 6 0
      institution/src/main/res/drawable/shape_main_music_search_bg.xml
  28. 1 0
      institution/src/main/res/layout/fg_home_card_layout.xml
  29. 366 0
      institution/src/main/res/layout/fg_home_music_layout.xml
  30. 2 0
      institution/src/main/res/values/colors.xml

BIN
BaseLibrary/src/main/res/drawable-xhdpi/icon_arrow_down3.png


BIN
BaseLibrary/src/main/res/drawable-xxhdpi/icon_arrow_down3.png


+ 1 - 0
institution/build.gradle

@@ -58,6 +58,7 @@ dependencies {
     implementation project(':BaseLibrary')
     implementation project(':usercenter')
     implementation project(':chatModule')
+    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
 
     //ARouter
     annotationProcessor("com.alibaba:arouter-compiler:$rootProject.ext.android.arouter_api_version")

+ 21 - 0
institution/src/main/java/com/cooleshow/institution/stu/bean/HomePageMode.java

@@ -0,0 +1,21 @@
+package com.cooleshow.institution.stu.bean;
+
+/**
+ * Author by pq, Date on 2023/9/12.
+ */
+public class HomePageMode {
+
+    private int type;
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+    public HomePageMode(int type) {
+        this.type = type;
+    }
+
+}

+ 9 - 0
institution/src/main/java/com/cooleshow/institution/stu/constants/Constants.java

@@ -0,0 +1,9 @@
+package com.cooleshow.institution.stu.constants;
+
+/**
+ * Author by pq, Date on 2023/9/12.
+ */
+public class Constants {
+    public static final int PRACTICE_TUTORIALS = 0;//练习教程
+    public static final int MORE_MUSIC_TRACK = 1;//更多曲目
+}

+ 12 - 0
institution/src/main/java/com/cooleshow/institution/stu/contract/HomeMusicContract.java

@@ -0,0 +1,12 @@
+package com.cooleshow.institution.stu.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+
+/**
+ * Author by pq, Date on 2023/9/11.
+ */
+public interface HomeMusicContract {
+    public interface HomeMusicContractView extends BaseView{
+
+    }
+}

+ 11 - 0
institution/src/main/java/com/cooleshow/institution/stu/presenter/HomeMusicPresenter.java

@@ -0,0 +1,11 @@
+package com.cooleshow.institution.stu.presenter;
+
+import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.institution.stu.contract.HomeContract;
+import com.cooleshow.institution.stu.contract.HomeMusicContract;
+
+/**
+ * Author by pq, Date on 2023/9/11.
+ */
+public class HomeMusicPresenter extends BasePresenter<HomeMusicContract.HomeMusicContractView> {
+}

+ 23 - 2
institution/src/main/java/com/cooleshow/institution/stu/ui/main/HomeCardFragment.java

@@ -7,16 +7,21 @@ import com.cooleshow.base.ui.fragment.BaseMVPFragment;
 import com.cooleshow.base.utils.LOG;
 import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.Utils;
+import com.cooleshow.institution.stu.R;
 import com.cooleshow.institution.stu.adapter.HomeCardPageAdapter;
+import com.cooleshow.institution.stu.bean.HomePageMode;
+import com.cooleshow.institution.stu.constants.Constants;
 import com.cooleshow.institution.stu.constants.HomePageType;
 import com.cooleshow.institution.stu.databinding.FgHomeCardLayoutBinding;
 import com.cooleshow.institution.stu.presenter.HomePresenter;
+import com.cooleshow.institution.stu.viewmodel.HomeViewModel;
 import com.cooleshow.institution.stu.widget.ScaleTransformer;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import androidx.fragment.app.Fragment;
+import androidx.lifecycle.ViewModelProviders;
 import androidx.viewpager2.widget.CompositePageTransformer;
 import androidx.viewpager2.widget.MarginPageTransformer;
 import androidx.viewpager2.widget.ViewPager2;
@@ -24,11 +29,12 @@ import androidx.viewpager2.widget.ViewPager2;
 /**
  * Author by pq, Date on 2023/9/11.
  */
-public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, HomePresenter> {
+public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, HomePresenter> implements View.OnClickListener {
 
     private HomePageType[] pages = new HomePageType[]{HomePageType.TRACK_LIST, HomePageType.ALL_PRACTICE, HomePageType.SUBJECT_PRACTICE};
 
     private HomeCardPageAdapter mCardPageAdapter;
+    private HomeViewModel mHomeViewModel;
 
     @Override
     protected void initView(View rootView) {
@@ -42,6 +48,7 @@ public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, H
 
     @Override
     protected void initData() {
+        initViewModel();
         initListener();
         ArrayList<Fragment> list = new ArrayList<>();
         for (int i = 0; i < pages.length; i++) {
@@ -55,7 +62,12 @@ public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, H
         mViewBinding.viewPager.setCurrentItem(0, false);
     }
 
+    private void initViewModel() {
+        mHomeViewModel = ViewModelProviders.of(getActivity()).get(HomeViewModel.class);
+    }
+
     private void initListener() {
+        mViewBinding.ivMoreTrack.setOnClickListener(this);
         mViewBinding.viewPager.registerOnPageChangeCallback(mPageChangeCallback);
     }
 
@@ -63,7 +75,7 @@ public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, H
         @Override
         public void onPageSelected(int position) {
             super.onPageSelected(position);
-            LOG.i("onPageSelected:"+position);
+            LOG.i("onPageSelected:" + position);
             ArrayList<Fragment> fragments = mCardPageAdapter.getFragments();
             if (fragments != null) {
                 for (int i = 0; i < fragments.size(); i++) {
@@ -92,4 +104,13 @@ public class HomeCardFragment extends BaseMVPFragment<FgHomeCardLayoutBinding, H
         mViewBinding.viewPager.unregisterOnPageChangeCallback(mPageChangeCallback);
         super.onDestroy();
     }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.iv_more_track) {
+            mHomeViewModel.getHomePageModeEvent().postValue(new HomePageMode(Constants.MORE_MUSIC_TRACK));
+            return;
+        }
+    }
 }

+ 35 - 2
institution/src/main/java/com/cooleshow/institution/stu/ui/main/HomeFragment.java

@@ -4,14 +4,20 @@ import android.view.View;
 
 import com.cooleshow.base.ui.fragment.BaseFragment;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.base.utils.LOG;
 import com.cooleshow.chatmodule.ui.ChatFragment;
 import com.cooleshow.institution.stu.adapter.HomePageAdapter;
+import com.cooleshow.institution.stu.bean.HomePageMode;
+import com.cooleshow.institution.stu.constants.Constants;
 import com.cooleshow.institution.stu.databinding.FgHomeLayoutBinding;
 import com.cooleshow.institution.stu.presenter.HomePresenter;
+import com.cooleshow.institution.stu.viewmodel.HomeViewModel;
 
 import java.util.ArrayList;
 
 import androidx.fragment.app.Fragment;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProviders;
 
 /**
  * Author by pq, Date on 2023/9/11.
@@ -24,16 +30,43 @@ public class HomeFragment extends BaseFragment<FgHomeLayoutBinding> {
 
     @Override
     protected void initData() {
-        ArrayList<Fragment> fragments=new ArrayList<>();
-        HomeCardFragment homeCardFragment =new HomeCardFragment();
+        initViewModel();
+        ArrayList<Fragment> fragments = new ArrayList<>();
+        HomeCardFragment homeCardFragment = new HomeCardFragment();
+        HomeMusicFragment musicFragment = new HomeMusicFragment();
         fragments.add(homeCardFragment);
+        fragments.add(musicFragment);
         HomePageAdapter homePageAdapter = new HomePageAdapter(this);
         homePageAdapter.setFragments(fragments);
         mViewBinding.viewPager.setAdapter(homePageAdapter);
         mViewBinding.viewPager.setOffscreenPageLimit(fragments.size());
+        mViewBinding.viewPager.setUserInputEnabled(false);
         mViewBinding.viewPager.setSaveEnabled(false);
     }
 
+    private void initViewModel() {
+        HomeViewModel HomeViewModel = ViewModelProviders.of(getActivity()).get(HomeViewModel.class);
+        HomeViewModel.getHomePageModeEvent().observe(this, new Observer<HomePageMode>() {
+            @Override
+            public void onChanged(HomePageMode homePageMode) {
+                LOG.i("getHomePageModeEvent onChanged");
+                if (getActivity() != null) {
+                    if (getActivity() instanceof MainActivity) {
+                        if (homePageMode != null) {
+                            selectPage(homePageMode.getType() == Constants.PRACTICE_TUTORIALS ? 0 : 1);
+                            MainActivity mainActivity = (MainActivity) getActivity();
+                            mainActivity.updateBottomTabStyle(homePageMode.getType() == Constants.PRACTICE_TUTORIALS);
+                        }
+                    }
+                }
+            }
+        });
+    }
+
+    private void selectPage(int pos) {
+        mViewBinding.viewPager.setCurrentItem(pos, false);
+    }
+
     @Override
     protected FgHomeLayoutBinding getLayoutView() {
         return FgHomeLayoutBinding.inflate(getLayoutInflater());

+ 61 - 0
institution/src/main/java/com/cooleshow/institution/stu/ui/main/HomeMusicFragment.java

@@ -0,0 +1,61 @@
+package com.cooleshow.institution.stu.ui.main;
+
+import android.view.View;
+
+import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.base.utils.Utils;
+import com.cooleshow.institution.stu.R;
+import com.cooleshow.institution.stu.bean.HomePageMode;
+import com.cooleshow.institution.stu.constants.Constants;
+import com.cooleshow.institution.stu.databinding.FgHomeMusicLayoutBinding;
+import com.cooleshow.institution.stu.presenter.HomeMusicPresenter;
+import com.cooleshow.institution.stu.viewmodel.HomeViewModel;
+
+import androidx.lifecycle.ViewModelProviders;
+
+/**
+ * Author by pq, Date on 2023/9/12.
+ */
+public class HomeMusicFragment extends BaseMVPFragment<FgHomeMusicLayoutBinding, HomeMusicPresenter> implements View.OnClickListener {
+
+    private HomeViewModel mHomeViewModel;
+
+    @Override
+    protected void initView(View rootView) {
+        Utils.setHeadView(mViewBinding.viewStatusBar, requireContext(), 0);
+    }
+
+    @Override
+    protected void initData() {
+        initViewModel();
+        initListener();
+    }
+
+    private void initListener() {
+        mViewBinding.ivPractice.setOnClickListener(this);
+    }
+
+    private void initViewModel() {
+        mHomeViewModel = ViewModelProviders.of(getActivity()).get(HomeViewModel.class);
+    }
+
+    @Override
+    protected FgHomeMusicLayoutBinding getLayoutView() {
+        return FgHomeMusicLayoutBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    protected HomeMusicPresenter createPresenter() {
+        return new HomeMusicPresenter();
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if(id == R.id.iv_practice){
+            mHomeViewModel.getHomePageModeEvent().postValue(new HomePageMode(Constants.PRACTICE_TUTORIALS));
+            return;
+        }
+    }
+}

+ 17 - 0
institution/src/main/java/com/cooleshow/institution/stu/viewmodel/HomeViewModel.java

@@ -0,0 +1,17 @@
+package com.cooleshow.institution.stu.viewmodel;
+
+import com.cooleshow.institution.stu.bean.HomePageMode;
+
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.ViewModel;
+
+/**
+ * Author by pq, Date on 2023/9/12.
+ */
+public class HomeViewModel extends ViewModel {
+    private MutableLiveData<HomePageMode> homePageModeEvent = new MutableLiveData<>();
+
+    public MutableLiveData<HomePageMode> getHomePageModeEvent() {
+        return homePageModeEvent;
+    }
+}

BIN
institution/src/main/res/drawable-xhdpi/jg_hot_ablum_title.png


BIN
institution/src/main/res/drawable-xhdpi/jg_hot_track_title.png


BIN
institution/src/main/res/drawable-xhdpi/jg_icon_search.png


BIN
institution/src/main/res/drawable-xhdpi/jg_latest_track_title.png


BIN
institution/src/main/res/drawable-xhdpi/jg_main_music_top_bg.png


BIN
institution/src/main/res/drawable-xhdpi/jg_practice_study_bt.png


BIN
institution/src/main/res/drawable-xhdpi/jg_recommend_title.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_hot_ablum_title.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_hot_track_title.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_icon_search.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_latest_track_title.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_main_music_top_bg.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_practice_study_bt.png


BIN
institution/src/main/res/drawable-xxhdpi/jg_recommend_title.png


+ 6 - 0
institution/src/main/res/drawable/shape_ff76a6_to_ff3c81_14dp.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <gradient android:startColor="#FF76A6"
+        android:endColor="#FF3C81"/>
+    <corners android:radius="14dp"/>
+</shape>

+ 6 - 0
institution/src/main/res/drawable/shape_main_music_search_bg.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#80ffffff"/>
+    <stroke android:color="@color/white" android:width="1dp"/>
+    <corners android:radius="19dp"/>
+</shape>

+ 1 - 0
institution/src/main/res/layout/fg_home_card_layout.xml

@@ -20,6 +20,7 @@
         app:layout_constraintTop_toTopOf="parent" />
 
     <ImageView
+        android:id="@+id/iv_more_track"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginTop="9dp"

+ 366 - 0
institution/src/main/res/layout/fg_home_music_layout.xml

@@ -0,0 +1,366 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <ImageView
+        android:id="@+id/iv_top_bg"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:adjustViewBounds="true"
+        android:src="@drawable/jg_main_music_top_bg"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <View
+        android:id="@+id/view_status_bar"
+        android:layout_width="match_parent"
+        android:layout_height="1px"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <ImageView
+        android:id="@+id/iv_practice"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="9dp"
+        android:layout_marginEnd="11dp"
+        android:src="@drawable/jg_practice_study_bt"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_status_bar" />
+
+    <ImageView
+        android:id="@+id/iv_tag"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="15dp"
+        android:layout_marginTop="13dp"
+        android:src="@drawable/icon_institution_img"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_status_bar" />
+
+    <TextView
+        android:id="@+id/tv_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="2dp"
+        android:includeFontPadding="false"
+        android:textColor="@color/color_131415"
+        android:textSize="@dimen/sp_16"
+        android:textStyle="bold"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_tag"
+        app:layout_constraintLeft_toRightOf="@+id/iv_tag"
+        app:layout_constraintTop_toTopOf="@+id/iv_tag"
+        tools:text="满天都是小星星机构" />
+
+    <FrameLayout
+        android:id="@+id/fl_subject"
+        android:layout_width="66dp"
+        android:layout_height="wrap_content"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg">
+
+        <TextView
+            android:id="@+id/tv_subject"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:drawableEnd="@drawable/icon_arrow_down3"
+            android:drawablePadding="4dp"
+            android:ellipsize="end"
+            android:gravity="center"
+            android:includeFontPadding="false"
+            android:maxLines="1"
+            android:textColor="@color/color_131415"
+            android:textSize="@dimen/sp_14"
+            app:layout_constraintLeft_toLeftOf="parent"
+            tools:text="竖笛" />
+    </FrameLayout>
+
+    <View
+        android:id="@+id/view_search_bg"
+        android:layout_width="0dp"
+        android:layout_height="34dp"
+        android:layout_marginTop="17dp"
+        android:layout_marginEnd="13dp"
+        android:background="@drawable/shape_main_music_search_bg"
+        app:layout_constraintLeft_toRightOf="@+id/fl_subject"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/tv_name" />
+
+    <ImageView
+        android:id="@+id/iv_search"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="12dp"
+        android:src="@drawable/jg_icon_search"
+        app:layout_constraintBottom_toBottomOf="@+id/view_search_bg"
+        app:layout_constraintLeft_toLeftOf="@+id/view_search_bg"
+        app:layout_constraintTop_toTopOf="@+id/view_search_bg" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:includeFontPadding="false"
+        android:paddingStart="6dp"
+        android:text="请输入专辑关键词"
+        android:textColor="@color/color_66000000"
+        android:textSize="@dimen/sp_14"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_search"
+        app:layout_constraintLeft_toRightOf="@+id/iv_search"
+        app:layout_constraintTop_toTopOf="@+id/iv_search" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="20dp"
+        android:layout_marginEnd="3dp"
+        android:background="@drawable/shape_ff76a6_to_ff3c81_14dp"
+        android:gravity="center"
+        android:paddingStart="12dp"
+        android:paddingEnd="12dp"
+        android:text="搜索"
+        android:textColor="@color/white"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_search"
+        app:layout_constraintRight_toRightOf="@+id/view_search_bg"
+        app:layout_constraintTop_toTopOf="@+id/iv_search" />
+
+
+    <View
+        android:id="@+id/view_top_line"
+        android:layout_width="1px"
+        android:layout_height="1px"
+        android:layout_marginTop="16dp"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_search_bg" />
+
+    <com.scwang.smart.refresh.layout.SmartRefreshLayout
+        android:id="@+id/refreshLayout"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/view_top_line"
+        app:srlEnableLoadMore="false">
+
+        <androidx.core.widget.NestedScrollView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content">
+
+                <FrameLayout
+                    android:id="@+id/fl_banner"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:clipChildren="false"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintTop_toTopOf="parent">
+
+                    <com.youth.banner.Banner
+                        android:id="@+id/banner"
+                        android:layout_width="match_parent"
+                        android:layout_height="@dimen/dp_156"
+                        android:layout_marginLeft="@dimen/dp_25"
+                        android:layout_marginRight="@dimen/dp_25"
+                        android:descendantFocusability="blocksDescendants"
+                        app:banner_indicator_gravity="right"
+                        app:banner_indicator_height="5dp"
+                        app:banner_indicator_marginBottom="8dp"
+                        app:banner_indicator_marginRight="12dp"
+                        app:banner_indicator_normal_color="@color/white"
+                        app:banner_indicator_normal_width="5dp"
+                        app:banner_indicator_selected_color="@color/white"
+                        app:banner_indicator_selected_width="12dp"
+                        app:banner_radius="10dp"
+                        app:layout_constraintLeft_toLeftOf="parent"
+                        app:layout_constraintTop_toTopOf="parent" />
+                </FrameLayout>
+
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:id="@+id/cl_hot_album"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/dp_10"
+                    android:visibility="visible"
+                    app:layout_constraintTop_toBottomOf="@+id/fl_banner">
+
+                    <ImageView
+                        android:id="@+id/iv_hot_album_title"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="13dp"
+                        android:layout_marginTop="13dp"
+                        android:src="@drawable/jg_hot_ablum_title"
+                        app:layout_constraintLeft_toLeftOf="parent"
+                        app:layout_constraintTop_toTopOf="parent" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:drawableEnd="@drawable/icon_arrow_right"
+                        android:drawablePadding="6dp"
+                        android:includeFontPadding="false"
+                        android:padding="13dp"
+                        android:text="更多"
+                        android:textColor="@color/color_aaaaaa"
+                        android:textSize="@dimen/sp_12"
+                        app:layout_constraintBottom_toBottomOf="@+id/iv_hot_album_title"
+                        app:layout_constraintRight_toRightOf="parent"
+                        app:layout_constraintTop_toTopOf="@+id/iv_hot_album_title" />
+
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rv_hot_album"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="17dp"
+                        android:overScrollMode="never"
+                        android:paddingLeft="@dimen/dp_13"
+                        android:scrollbars="none"
+                        app:layout_constraintTop_toBottomOf="@+id/iv_hot_album_title" />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:id="@+id/cl_recommend_track"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/dp_15"
+                    android:visibility="gone"
+                    app:layout_constraintTop_toBottomOf="@+id/cl_hot_album"
+                    tools:visibility="visible">
+
+                    <ImageView
+                        android:id="@+id/iv_recommend_title"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="13dp"
+                        android:layout_marginTop="13dp"
+                        android:src="@drawable/jg_recommend_title"
+                        app:layout_constraintLeft_toLeftOf="parent"
+                        app:layout_constraintTop_toTopOf="parent" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:drawableEnd="@drawable/icon_arrow_right"
+                        android:drawablePadding="6dp"
+                        android:includeFontPadding="false"
+                        android:padding="13dp"
+                        android:text="更多"
+                        android:textColor="@color/color_aaaaaa"
+                        android:textSize="@dimen/sp_12"
+                        app:layout_constraintBottom_toBottomOf="@+id/iv_recommend_title"
+                        app:layout_constraintRight_toRightOf="parent"
+                        app:layout_constraintTop_toTopOf="@+id/iv_recommend_title" />
+
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rv_recommend_track"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="13dp"
+                        android:overScrollMode="never"
+                        android:paddingLeft="@dimen/dp_13"
+                        android:scrollbars="none"
+                        app:layout_constraintTop_toBottomOf="@+id/iv_recommend_title" />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:id="@+id/cl_latest_track"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/dp_15"
+                    android:visibility="gone"
+                    app:layout_constraintTop_toBottomOf="@+id/cl_recommend_track"
+                    tools:visibility="visible">
+
+                    <ImageView
+                        android:id="@+id/iv_latest_track_title"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="13dp"
+                        android:layout_marginTop="13dp"
+                        android:src="@drawable/jg_latest_track_title"
+                        app:layout_constraintLeft_toLeftOf="parent"
+                        app:layout_constraintTop_toTopOf="parent" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:drawableEnd="@drawable/icon_arrow_right"
+                        android:drawablePadding="6dp"
+                        android:includeFontPadding="false"
+                        android:padding="13dp"
+                        android:text="更多"
+                        android:textColor="@color/color_aaaaaa"
+                        android:textSize="@dimen/sp_12"
+                        app:layout_constraintBottom_toBottomOf="@+id/iv_latest_track_title"
+                        app:layout_constraintRight_toRightOf="parent"
+                        app:layout_constraintTop_toTopOf="@+id/iv_latest_track_title" />
+
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rv_latest_track"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="13dp"
+                        android:overScrollMode="never"
+                        android:paddingLeft="@dimen/dp_13"
+                        android:scrollbars="none"
+                        app:layout_constraintTop_toBottomOf="@+id/iv_latest_track_title" />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:id="@+id/cl_hot_track"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/dp_15"
+                    android:visibility="gone"
+                    app:layout_constraintTop_toBottomOf="@+id/cl_latest_track"
+                    tools:visibility="visible">
+
+                    <ImageView
+                        android:id="@+id/iv_hot_track_title"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="13dp"
+                        android:layout_marginTop="13dp"
+                        android:src="@drawable/jg_hot_track_title"
+                        app:layout_constraintLeft_toLeftOf="parent"
+                        app:layout_constraintTop_toTopOf="parent" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:drawableEnd="@drawable/icon_arrow_right"
+                        android:drawablePadding="6dp"
+                        android:includeFontPadding="false"
+                        android:padding="13dp"
+                        android:text="更多"
+                        android:textColor="@color/color_aaaaaa"
+                        android:textSize="@dimen/sp_12"
+                        app:layout_constraintBottom_toBottomOf="@+id/iv_hot_track_title"
+                        app:layout_constraintRight_toRightOf="parent"
+                        app:layout_constraintTop_toTopOf="@+id/iv_hot_track_title" />
+
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rv_hot_track"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="13dp"
+                        android:overScrollMode="never"
+                        android:paddingLeft="@dimen/dp_13"
+                        android:scrollbars="none"
+                        app:layout_constraintTop_toBottomOf="@+id/iv_hot_track_title" />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+            </androidx.constraintlayout.widget.ConstraintLayout>
+        </androidx.core.widget.NestedScrollView>
+    </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 0
institution/src/main/res/values/colors.xml

@@ -3,4 +3,6 @@
     <color name="color_ff497b">#FF497B</color>
     <color name="color_66ffffff">#66ffffff</color>
     <color name="color_121b2e">#121B2E</color>
+    <color name="color_131415">#131415</color>
+    <color name="color_66000000">#66000000</color>
 </resources>