From 9178a17fda334ae4fb1df7ddefcdae9bbc40400b Mon Sep 17 00:00:00 2001
From: Administrator <123>
Date: Sat, 06 Nov 2021 00:42:38 +0000
Subject: [PATCH] 广场 控制层 大厅  分类弹框

---
 app/src/main/java/com/duqing/missions/ui/main/hall/popup/HallClassifyAdapter.java   |   28 ++++
 app/src/main/java/com/duqing/missions/ui/main/hall/SubHallFragment.java             |   18 ++
 app/src/main/java/com/duqing/missions/ui/main/hall/popup/HallClassifyViewModel.java |   11 +
 app/src/main/java/com/duqing/missions/ui/main/home/adapter/HomeClassifyAdapter.java |    2 
 app/src/main/java/com/duqing/missions/ui/main/dynamic/DynamicFragment.java          |    8 
 app/src/main/res/layout/fragment_sub_hall.xml                                       |  153 ++++++++++++---------
 app/src/main/java/com/duqing/missions/base/activities/BaseTitleBarActivity.java     |    1 
 app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareAdapter.java     |   14 ++
 app/src/main/java/com/duqing/missions/ui/main/home/HomeFragment.java                |    8 
 app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareFragment.java    |   14 ++
 app/src/main/res/layout/hall_popu_classify.xml                                      |   66 ++++++++-
 app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareViewModel.java   |   19 ++
 app/src/main/java/com/duqing/missions/ui/main/hall/popup/PopupClassify.java         |   39 +++++
 13 files changed, 293 insertions(+), 88 deletions(-)

diff --git a/app/src/main/java/com/duqing/missions/base/activities/BaseTitleBarActivity.java b/app/src/main/java/com/duqing/missions/base/activities/BaseTitleBarActivity.java
index dab729e..43339d5 100644
--- a/app/src/main/java/com/duqing/missions/base/activities/BaseTitleBarActivity.java
+++ b/app/src/main/java/com/duqing/missions/base/activities/BaseTitleBarActivity.java
@@ -23,6 +23,7 @@
 
         try {
             titleBarView = (TitleBarView) binding.getClass().getDeclaredField("titleBar").get(binding);
+            titleBarView.setLeftClick(v -> onTitleLeftClick());
         } catch (IllegalAccessException e) {
             e.printStackTrace();
         } catch (NoSuchFieldException e) {
diff --git a/app/src/main/java/com/duqing/missions/ui/main/dynamic/DynamicFragment.java b/app/src/main/java/com/duqing/missions/ui/main/dynamic/DynamicFragment.java
index 2411e7d..aabf143 100644
--- a/app/src/main/java/com/duqing/missions/ui/main/dynamic/DynamicFragment.java
+++ b/app/src/main/java/com/duqing/missions/ui/main/dynamic/DynamicFragment.java
@@ -4,7 +4,7 @@
 import com.duqing.missions.base.fragments.BaseFragment;
 import com.duqing.missions.base.fragments.BaseTabFragment;
 import com.duqing.missions.databinding.LayoutTabViewpagerBinding;
-import com.duqing.missions.ui.main.hall.SubHallFragment;
+import com.duqing.missions.ui.main.dynamic.square.SquareFragment;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -30,9 +30,9 @@
     @Override
     protected List<BaseFragment> initFragments() {
         List<BaseFragment> list = new ArrayList<>();
-        list.add(new SubHallFragment());
-        list.add(new SubHallFragment());
-        list.add(new SubHallFragment());
+        list.add(new SquareFragment());
+        list.add(new SquareFragment());
+        list.add(new SquareFragment());
         return list;
     }
 }
diff --git a/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareAdapter.java b/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareAdapter.java
new file mode 100644
index 0000000..1c31794
--- /dev/null
+++ b/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareAdapter.java
@@ -0,0 +1,14 @@
+package com.duqing.missions.ui.main.dynamic.square;
+
+import com.duqing.missions.base.adapter.BaseAdapter;
+import com.duqing.missions.databinding.DynamicItemSquareBinding;
+
+/**
+ * 广场帖子
+ * Created by Administrator on 2021/11/5 0005.
+ */
+public class SquareAdapter extends BaseAdapter<DynamicItemSquareBinding,String> {
+    @Override
+    protected void bindView(ViewBindHolder holder, String data, int position) {
+    }
+}
diff --git a/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareFragment.java b/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareFragment.java
new file mode 100644
index 0000000..e59f3f5
--- /dev/null
+++ b/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareFragment.java
@@ -0,0 +1,14 @@
+package com.duqing.missions.ui.main.dynamic.square;
+
+import com.duqing.missions.base.fragments.BaseLoadPageFragment;
+import com.duqing.missions.data.BasePageResult;
+import com.duqing.missions.databinding.RefreshRecyclerBinding;
+
+/**
+ * 广场
+ * Created by Administrator on 2021/11/5 0005.
+ */
+public class SquareFragment extends BaseLoadPageFragment<RefreshRecyclerBinding,SquareViewModel,SquareAdapter, BasePageResult<String>> {
+
+
+}
diff --git a/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareViewModel.java b/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareViewModel.java
new file mode 100644
index 0000000..a577f21
--- /dev/null
+++ b/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareViewModel.java
@@ -0,0 +1,19 @@
+package com.duqing.missions.ui.main.dynamic.square;
+
+import com.duqing.missions.base.model.BaseLoadPageViewModel;
+
+/**
+ * 广场
+ * Created by Administrator on 2021/11/5 0005.
+ */
+public class SquareViewModel extends BaseLoadPageViewModel {
+    @Override
+    public void onRefresh() {
+
+    }
+
+    @Override
+    public void onLoadMore() {
+
+    }
+}
diff --git a/app/src/main/java/com/duqing/missions/ui/main/hall/SubHallFragment.java b/app/src/main/java/com/duqing/missions/ui/main/hall/SubHallFragment.java
index c3f003e..8dfbed1 100644
--- a/app/src/main/java/com/duqing/missions/ui/main/hall/SubHallFragment.java
+++ b/app/src/main/java/com/duqing/missions/ui/main/hall/SubHallFragment.java
@@ -1,9 +1,14 @@
 package com.duqing.missions.ui.main.hall;
 
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+
 import com.duqing.missions.base.fragments.BaseLoadPageFragment;
 import com.duqing.missions.data.BasePageResult;
 import com.duqing.missions.databinding.FragmentSubHallBinding;
-import com.duqing.missions.databinding.RefreshRecyclerBinding;
+import com.duqing.missions.databinding.HallPopuClassifyBinding;
+import com.duqing.missions.ui.main.hall.popup.PopupClassify;
 import com.duqing.missions.ui.main.home.adapter.MissionAdapter;
 
 /**
@@ -11,10 +16,17 @@
  */
 public class SubHallFragment extends BaseLoadPageFragment<FragmentSubHallBinding,SubHallViewModel, MissionAdapter, BasePageResult<String>> {
 
-
     @Override
     public void initViews() {
         super.initViews();
-        final RefreshRecyclerBinding includeRefreshRecycler = binding.includeRefreshRecycler;
+        binding.txtClassify.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                new PopupClassify(getContext(), HallPopuClassifyBinding.inflate((LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE))).showAsDropDown(v);
+            }
+        });
     }
+
+
+
 }
diff --git a/app/src/main/java/com/duqing/missions/ui/main/hall/popup/HallClassifyAdapter.java b/app/src/main/java/com/duqing/missions/ui/main/hall/popup/HallClassifyAdapter.java
new file mode 100644
index 0000000..ab55905
--- /dev/null
+++ b/app/src/main/java/com/duqing/missions/ui/main/hall/popup/HallClassifyAdapter.java
@@ -0,0 +1,28 @@
+package com.duqing.missions.ui.main.hall.popup;
+
+import android.widget.CompoundButton;
+
+import com.duqing.missions.base.adapter.BaseAdapter;
+import com.duqing.missions.databinding.ItemClassifyBinding;
+
+/**
+ * Created by Administrator on 2021/11/5 0005.
+ */
+public class HallClassifyAdapter extends BaseAdapter<ItemClassifyBinding,String> {
+
+
+    @Override
+    protected void bindView(ViewBindHolder holder, String data, int position) {
+        holder.binding.check.setText(data);
+        holder.binding.check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                if(isChecked){
+                    buttonView.setEnabled(false);
+                }else{
+                    buttonView.setEnabled(true);
+                }
+            }
+        });
+    }
+}
diff --git a/app/src/main/java/com/duqing/missions/ui/main/hall/popup/HallClassifyViewModel.java b/app/src/main/java/com/duqing/missions/ui/main/hall/popup/HallClassifyViewModel.java
new file mode 100644
index 0000000..e3be39b
--- /dev/null
+++ b/app/src/main/java/com/duqing/missions/ui/main/hall/popup/HallClassifyViewModel.java
@@ -0,0 +1,11 @@
+package com.duqing.missions.ui.main.hall.popup;
+
+import androidx.lifecycle.ViewModel;
+
+/**
+ * Created by Administrator on 2021/11/5 0005.
+ */
+public class HallClassifyViewModel extends ViewModel {
+
+
+}
diff --git a/app/src/main/java/com/duqing/missions/ui/main/hall/popup/PopupClassify.java b/app/src/main/java/com/duqing/missions/ui/main/hall/popup/PopupClassify.java
new file mode 100644
index 0000000..c8f7e92
--- /dev/null
+++ b/app/src/main/java/com/duqing/missions/ui/main/hall/popup/PopupClassify.java
@@ -0,0 +1,39 @@
+package com.duqing.missions.ui.main.hall.popup;
+
+import android.content.Context;
+import android.view.ViewGroup;
+import android.widget.PopupWindow;
+
+import androidx.recyclerview.widget.GridLayoutManager;
+
+import com.duqing.missions.databinding.HallPopuClassifyBinding;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+/**
+ * Created by Administrator on 2021/11/5 0005.
+ */
+public class PopupClassify extends PopupWindow {
+
+    String[] classifies = new String[]{
+            "注册","投票","关注","浏览",
+            "下载","转发","发帖","评论",
+            "高价","电商","实名","试玩",
+            "特单","砍价","其他"
+    };
+
+
+    public PopupClassify(Context context,HallPopuClassifyBinding binding) {
+        //final HallPopuClassifyBinding binding = HallPopuClassifyBinding.inflate((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE));
+        super(binding.getRoot(), ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
+        binding.recycler.setLayoutManager(new GridLayoutManager(context,4));
+        HallClassifyAdapter adapter = new HallClassifyAdapter();
+        adapter.setData(new ArrayList<>(Arrays.asList(classifies)));
+        binding.recycler.setAdapter(adapter);
+        setOutsideTouchable(true);
+        binding.textConfirm.setOnClickListener(v -> dismiss());
+        binding.textCancel.setOnClickListener(v -> dismiss());
+    }
+
+}
diff --git a/app/src/main/java/com/duqing/missions/ui/main/home/HomeFragment.java b/app/src/main/java/com/duqing/missions/ui/main/home/HomeFragment.java
index bc12d4b..df1092d 100644
--- a/app/src/main/java/com/duqing/missions/ui/main/home/HomeFragment.java
+++ b/app/src/main/java/com/duqing/missions/ui/main/home/HomeFragment.java
@@ -18,7 +18,7 @@
 import com.duqing.missions.data.BasePageResult;
 import com.duqing.missions.databinding.FragmentHomeBinding;
 import com.duqing.missions.ui.login.view.LoginActivity;
-import com.duqing.missions.ui.main.home.adapter.ClassifyAdapter;
+import com.duqing.missions.ui.main.home.adapter.HomeClassifyAdapter;
 import com.duqing.missions.ui.main.home.adapter.MissionAdapter;
 import com.duqing.missions.ui.main.home.adapter.MissionTopAdapter;
 import com.duqing.missions.ui.main.home.model.Classify;
@@ -41,8 +41,8 @@
         LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
         layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
         recyclerClassify.setLayoutManager(layoutManager);
-        ClassifyAdapter classifyAdapter = new ClassifyAdapter();
-        recyclerClassify.setAdapter(classifyAdapter);
+        HomeClassifyAdapter homeClassifyAdapter = new HomeClassifyAdapter();
+        recyclerClassify.setAdapter(homeClassifyAdapter);
         recyclerTop.setLayoutManager(new GridLayoutManager(getContext(),3));
         final MissionTopAdapter topAdapter = new MissionTopAdapter();
         recyclerTop.setAdapter(topAdapter);
@@ -63,7 +63,7 @@
         viewModel.getClassifies().observeForever(new Observer<List<Classify>>() {
             @Override
             public void onChanged(List<Classify> cliassifies) {
-                classifyAdapter.setData(cliassifies);
+                homeClassifyAdapter.setData(cliassifies);
             }
         });
     }
diff --git a/app/src/main/java/com/duqing/missions/ui/main/home/adapter/ClassifyAdapter.java b/app/src/main/java/com/duqing/missions/ui/main/home/adapter/HomeClassifyAdapter.java
similarity index 83%
rename from app/src/main/java/com/duqing/missions/ui/main/home/adapter/ClassifyAdapter.java
rename to app/src/main/java/com/duqing/missions/ui/main/home/adapter/HomeClassifyAdapter.java
index fbc7604..7eaa99e 100644
--- a/app/src/main/java/com/duqing/missions/ui/main/home/adapter/ClassifyAdapter.java
+++ b/app/src/main/java/com/duqing/missions/ui/main/home/adapter/HomeClassifyAdapter.java
@@ -7,7 +7,7 @@
 /**
  * Created by Administrator on 2021/11/5 0005.
  */
-public class ClassifyAdapter extends BaseAdapter<HomeItemClassifyBinding,  Classify> {
+public class HomeClassifyAdapter extends BaseAdapter<HomeItemClassifyBinding,  Classify> {
     @Override
     protected void bindView(ViewBindHolder holder, Classify data, int position) {
         holder.binding.textView.setText("Text "+position);
diff --git a/app/src/main/res/layout/fragment_sub_hall.xml b/app/src/main/res/layout/fragment_sub_hall.xml
index 35b39a1..9938808 100644
--- a/app/src/main/res/layout/fragment_sub_hall.xml
+++ b/app/src/main/res/layout/fragment_sub_hall.xml
@@ -2,7 +2,8 @@
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    xmlns:app="http://schemas.android.com/apk/res-auto">
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
 
 
     <RadioGroup
@@ -63,71 +64,91 @@
         app:layout_constraintHorizontal_weight="1"
         app:layout_constraintHorizontal_chainStyle="spread" />
 
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/layout"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="@drawable/bg_white_corner"
-        android:elevation="@dimen/small_radios"
-        android:layout_margin="@dimen/activity_horizontal_margin"
-        android:padding="@dimen/frame_margin_lr"
-        app:layout_constraintTop_toBottomOf="@id/radio_group"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintBottom_toTopOf="@id/include_refresh_recycler">
-
-
-        <include layout="@layout/hall_item_top"
-            android:id="@+id/layout_left"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintRight_toLeftOf="@id/layout_between"/>
-        <include layout="@layout/hall_item_top"
-            android:id="@+id/layout_between"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintLeft_toRightOf="@id/layout_left"
-            app:layout_constraintRight_toLeftOf="@id/layout_right"
-            />
-        <include layout="@layout/hall_item_top"
-            android:id="@+id/layout_right"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintLeft_toRightOf="@id/layout_between"
-            app:layout_constraintRight_toRightOf="parent"/>
-
-        <View
-            android:layout_width="0.5dp"
-            android:layout_height="0dp"
-            android:background="@color/gray"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintLeft_toRightOf="@id/layout_left" />
-
-        <View
-            android:layout_width="0.5dp"
-            android:layout_height="0dp"
-            android:background="@color/gray"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintLeft_toRightOf="@id/layout_between" />
-
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-
-    <include layout="@layout/refresh_recycler"
-        android:id="@+id/include_refresh_recycler"
+    <com.scwang.smart.refresh.layout.SmartRefreshLayout
+        android:id="@+id/smart_refresh"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        app:layout_constraintTop_toBottomOf="@id/layout"
-        app:layout_constraintBottom_toBottomOf="parent"/>
+        app:layout_constraintTop_toBottomOf="@id/radio_group"
+        app:layout_constraintBottom_toBottomOf="parent" >
+
+        <androidx.core.widget.NestedScrollView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content">
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:id="@+id/layout"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:background="@drawable/bg_white_corner"
+                    android:elevation="@dimen/small_radios"
+                    android:layout_margin="@dimen/activity_horizontal_margin"
+                    android:padding="@dimen/frame_margin_lr"
+                    app:layout_constraintTop_toTopOf="parent"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintBottom_toTopOf="@id/recycler">
+
+
+                    <include layout="@layout/hall_item_top"
+                        android:id="@+id/layout_left"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintLeft_toLeftOf="parent"
+                        app:layout_constraintRight_toLeftOf="@id/layout_between"/>
+                    <include layout="@layout/hall_item_top"
+                        android:id="@+id/layout_between"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintLeft_toRightOf="@id/layout_left"
+                        app:layout_constraintRight_toLeftOf="@id/layout_right"
+                        />
+                    <include layout="@layout/hall_item_top"
+                        android:id="@+id/layout_right"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintLeft_toRightOf="@id/layout_between"
+                        app:layout_constraintRight_toRightOf="parent"/>
+
+                    <View
+                        android:layout_width="0.5dp"
+                        android:layout_height="0dp"
+                        android:background="@color/gray"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintLeft_toRightOf="@id/layout_left" />
+
+                    <View
+                        android:layout_width="0.5dp"
+                        android:layout_height="0dp"
+                        android:background="@color/gray"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintLeft_toRightOf="@id/layout_between" />
+
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/recycler"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:overScrollMode="never"
+                    android:padding="@dimen/activity_horizontal_margin"
+                    tools:listitem="@layout/homt_item_recommend"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintTop_toBottomOf="@id/layout"/>
+            </androidx.constraintlayout.widget.ConstraintLayout>
+        </androidx.core.widget.NestedScrollView>
+
+    </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/hall_popu_classify.xml b/app/src/main/res/layout/hall_popu_classify.xml
index 0722bf5..f3f2c91 100644
--- a/app/src/main/res/layout/hall_popu_classify.xml
+++ b/app/src/main/res/layout/hall_popu_classify.xml
@@ -1,14 +1,60 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/recycler"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="@drawable/bg_border_gray_corner"
-    android:paddingBottom="@dimen/frame_margin_lr"
-    app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
-    app:spanCount="4"
-    tools:listitem="@layout/item_classify"
-    tools:itemCount="8">
-</androidx.recyclerview.widget.RecyclerView>
\ No newline at end of file
+    android:layout_height="wrap_content">
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_marginBottom="@dimen/small_radios"
+        android:background="@color/white"
+        android:elevation="@dimen/small_radios"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/recycler"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingBottom="@dimen/frame_margin_lr"
+            android:overScrollMode="never"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
+            app:spanCount="4"
+            tools:listitem="@layout/item_classify"
+            tools:itemCount="8">
+        </androidx.recyclerview.widget.RecyclerView>
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="0.5dp"
+            android:background="@color/gray"
+            app:layout_constraintTop_toBottomOf="@id/recycler" />
+        <TextView
+            android:id="@+id/text_cancel"
+            android:layout_width="0dp"
+            android:layout_height="40dp"
+            android:text="取消"
+            android:gravity="center"
+            app:layout_constraintRight_toLeftOf="@id/text_confirm"
+            app:layout_constraintTop_toBottomOf="@id/recycler"
+            app:layout_constraintLeft_toLeftOf="parent" />
+        <TextView
+            android:id="@+id/text_confirm"
+            android:layout_width="0dp"
+            android:layout_height="50dp"
+            android:text="确定"
+            android:gravity="center"
+            app:layout_constraintTop_toBottomOf="@id/recycler"
+            app:layout_constraintLeft_toRightOf="@id/text_cancel"
+            app:layout_constraintRight_toRightOf="parent"/>
+        <View
+            android:layout_width="0.5dp"
+            android:layout_height="0dp"
+            android:background="@color/gray"
+            app:layout_constraintTop_toTopOf="@id/text_cancel"
+            app:layout_constraintBottom_toBottomOf="@id/text_cancel"
+            app:layout_constraintLeft_toRightOf="@id/text_cancel"/>
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</RelativeLayout>
\ No newline at end of file

--
Gitblit v1.9.1