Просмотр исходного кода

增加老师端收入筛选类型

Pq 3 лет назад
Родитель
Сommit
37bb595db1

+ 76 - 0
BaseLibrary/src/main/res/layout/pickerview_options_default_layout.xml

@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@drawable/bg_white_top_10dp"
+    android:orientation="vertical">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="50dp">
+
+
+        <TextView
+            android:id="@+id/tv_cancel"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="17dp"
+            android:text="取消"
+            android:textColor="@color/color_999999"
+            android:textSize="@dimen/dp_16" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+            android:text=""
+            android:textColor="@color/color_333333"
+            android:textSize="18dp" />
+
+        <TextView
+            android:id="@+id/tv_finish"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="17dp"
+            android:padding="8dp"
+            android:text="确定"
+            android:textColor="@color/colorPrimary"
+            android:textSize="@dimen/dp_16" />
+
+    </RelativeLayout>
+
+    <View style="@style/line_style" />
+    <!--此部分需要完整复制过去,删减或者更改ID会导致初始化找不到内容而报空-->
+    <LinearLayout
+        android:id="@+id/optionspicker"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_200"
+        android:background="@android:color/white"
+        android:gravity="center"
+        android:minHeight="150dp"
+        android:orientation="horizontal">
+
+        <com.contrarywind.view.WheelView
+            android:id="@+id/options1"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+
+        <com.contrarywind.view.WheelView
+            android:id="@+id/options2"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+
+        <com.contrarywind.view.WheelView
+            android:id="@+id/options3"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+    </LinearLayout>
+
+
+</LinearLayout>

+ 8 - 1
teacher/src/main/java/com/cooleshow/teacher/bean/IncomeFilterBean.java

@@ -1,12 +1,14 @@
 package com.cooleshow.teacher.bean;
 
+import com.contrarywind.interfaces.IPickerViewData;
+
 /**
  * 创建日期:2022/5/23 14:59
  *
  * @author Ryan
  * 类说明:
  */
-public class IncomeFilterBean {
+public class IncomeFilterBean  implements IPickerViewData {
     public String value;
     public String showText;
 
@@ -14,4 +16,9 @@ public class IncomeFilterBean {
         this.value = value;
         this.showText = showText;
     }
+
+    @Override
+    public String getPickerViewText() {
+        return showText;
+    }
 }

+ 56 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/income/MineIncomeActivity.java

@@ -15,8 +15,11 @@ import androidx.recyclerview.widget.RecyclerView;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.launcher.ARouter;
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
 import com.bigkoo.pickerview.builder.TimePickerBuilder;
 import com.bigkoo.pickerview.listener.CustomListener;
+import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
+import com.bigkoo.pickerview.view.OptionsPickerView;
 import com.bigkoo.pickerview.view.TimePickerView;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
@@ -56,6 +59,7 @@ import io.rong.imkit.utils.StatusBarUtil;
 @Route(path = RouterPath.IncomeCenter.TEACHER_MINE_INCOME)
 public class MineIncomeActivity extends BaseMVPActivity<ActivityMineIncomeBinding, MineIncomePresenter> implements MineIncomeContract.MineIncomeView, View.OnClickListener {
     private String currentIncomeFilterStatus = "";
+    private OptionsPickerView mIncomeTypeSelector;
 
     @Override
     public void onClick(View view) {
@@ -69,7 +73,8 @@ public class MineIncomeActivity extends BaseMVPActivity<ActivityMineIncomeBindin
                 showTimeSelectPicker();
                 break;
             case R.id.tv_income_type:
-                initPop(viewBinding.tvIncomeType);
+//                initPop(viewBinding.tvIncomeType);
+                showIncomeTypeFilter();
                 break;
             case R.id.tv_withdrawal:
                 ARouter.getInstance().build(RouterPath.IncomeCenter.TEACHER_MINE_WITHDRAWAL)
@@ -167,6 +172,11 @@ public class MineIncomeActivity extends BaseMVPActivity<ActivityMineIncomeBindin
         mFilterStatusBeans.add(new IncomeFilterBean("LIVE", "直播课"));
         mFilterStatusBeans.add(new IncomeFilterBean("VIDEO", "视频课"));
         mFilterStatusBeans.add(new IncomeFilterBean("MUSIC", "乐谱"));
+        mFilterStatusBeans.add(new IncomeFilterBean("LIVE_SHARE", "直播课分润"));
+        mFilterStatusBeans.add(new IncomeFilterBean("VIDEO_SHARE", "视频课分润"));
+        mFilterStatusBeans.add(new IncomeFilterBean("MUSIC_SHARE", "乐谱分润"));
+        mFilterStatusBeans.add(new IncomeFilterBean("VIP_SHARE", "会员分润"));
+        mFilterStatusBeans.add(new IncomeFilterBean("MALL_SHARE", "商品分润"));
 
     }
 
@@ -292,6 +302,51 @@ public class MineIncomeActivity extends BaseMVPActivity<ActivityMineIncomeBindin
     private PopupWindow mPopupWindow;
     private IncomeFilterAdapter incomeFilterAdapter;
 
+
+    private void showIncomeTypeFilter() {
+        if (mIncomeTypeSelector == null) {
+            mIncomeTypeSelector = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {
+                @Override
+                public void onOptionsSelect(int options1, int option2, int options3, View v) {
+                    //返回的分别是三个级别的选中位置
+                    if (options1 < mFilterStatusBeans.size()) {
+                        IncomeFilterBean incomeFilterBean = mFilterStatusBeans.get(options1);
+                        viewBinding.tvIncomeType.setText(incomeFilterBean.showText);
+                        reBuildFilter(currentSelectDate, incomeFilterBean.value);
+                    }
+                }
+            }).setLayoutRes(com.cooleshow.base.R.layout.pickerview_options_default_layout, new CustomListener() {
+                @Override
+                public void customLayout(View v) {
+                    //自定义布局中的控件初始化及事件处理
+                    final TextView tvSubmit = (TextView) v.findViewById(R.id.tv_finish);
+                    TextView ivCancel = (TextView) v.findViewById(R.id.tv_cancel);
+                    tvSubmit.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            mIncomeTypeSelector.returnData();
+                            mIncomeTypeSelector.dismiss();
+                        }
+                    });
+                    ivCancel.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            mIncomeTypeSelector.dismiss();
+                        }
+                    });
+                }
+            })
+                    .setLineSpacingMultiplier(2.5f)
+                    .isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。
+                    .setLabels("", "", "")
+                    .build();
+            mIncomeTypeSelector.setPicker(mFilterStatusBeans);//一级选择器*/
+        }
+        if (!mIncomeTypeSelector.isShowing()) {
+            mIncomeTypeSelector.show();
+        }
+    }
+
     private void initPop(View targetView) {
         if (mPopupWindow == null) {
             View popupContentView = LayoutInflater.from(this).inflate(com.cooleshow.base.R.layout.list_popu_layout, null);