Parcourir la source

1. 分页请求优化

咸光金 il y a 4 ans
Parent
commit
9e3ea2676d

+ 3 - 4
app/src/main/java/com/quansu/heifengwuliu/activity/AllCarActivity.kt

@@ -1,6 +1,5 @@
 package com.quansu.heifengwuliu.activity
 
-import android.os.Bundle
 import android.view.View
 import com.google.gson.Gson
 import com.quansu.heifengwuliu.R
@@ -22,9 +21,9 @@ class AllCarActivity : MBRActivity<AllCarVModel, CollectionAdapter, ActivityColl
     override fun listeners() {
         super.listeners()
         binding.butSure.setOnClickListener {
-            var list = adapter().data as ArrayList<DriverBean>
-            if (null != list && list.size > 0) {
-                var choseList = ArrayList<SaveDriverBean>()
+            val list = adapter().data as ArrayList<DriverBean>
+            if (list.size > 0) {
+                val choseList = ArrayList<SaveDriverBean>()
                 for (item in list) {
                     if (item.checked == 1) {
                         var ben = SaveDriverBean(item.uid, item.car_id)

+ 2 - 2
app/src/main/java/com/quansu/heifengwuliu/binding/SearchViewBindingAdapter.java

@@ -1,6 +1,6 @@
 package com.quansu.heifengwuliu.binding;
 
-import com.quansu.heifengwuliu.vmodel.CollectionVModel;
+import com.quansu.heifengwuliu.vmodel.SearchVModel;
 import com.quansu.heifengwuliu.widget.SearchView;
 
 import androidx.databinding.BindingAdapter;
@@ -9,7 +9,7 @@ public class SearchViewBindingAdapter {
 
 
     @BindingAdapter("vm")
-    public static void setViewModel(SearchView view, CollectionVModel vModel) {
+    public static void setViewModel(SearchView view, SearchVModel vModel) {
         view.setViewModel(vModel);
     }
 

+ 1 - 11
app/src/main/java/com/quansu/heifengwuliu/vmodel/AddressVModel.kt

@@ -3,28 +3,18 @@ package com.quansu.heifengwuliu.vmodel
 import android.app.Activity
 import android.content.Intent
 import android.os.Bundle
-import androidx.databinding.Bindable
-import com.quansu.heifengwuliu.BR
 import com.quansu.heifengwuliu.activity.AddressAddActivity
 import com.quansu.heifengwuliu.config.MIntentAction
 import com.quansu.heifengwuliu.fragment.AddressFragment
 import com.quansu.heifengwuliu.model.AddressBean
 import com.quansu.heifengwuliu.utils.net.NetEngine
-import com.ysnows.base.base.BRRepository
-import com.ysnows.base.base.BRViewModel
 import com.ysnows.base.net.IResponse
 import com.ysnows.base.utils.B
 import com.ysnows.base.utils.UiSwitch
 import io.reactivex.Observable
 
-class AddressVModel : BRViewModel<BRRepository>() {
+class AddressVModel : SearchVModel() {
 
-    @Bindable
-    var k: String = ""
-        set(value) {
-            field = value
-            notifyPropertyChanged(BR.k)
-        }
 
     var type: String? = null
     var context: AddressFragment? = null

+ 4 - 5
app/src/main/java/com/quansu/heifengwuliu/widget/SearchView.kt

@@ -3,13 +3,9 @@ package com.quansu.heifengwuliu.widget
 import android.content.Context
 import android.util.AttributeSet
 import android.view.LayoutInflater
-import android.widget.EditText
-import android.widget.ImageView
-import android.widget.TextView
 import androidx.databinding.DataBindingUtil
 import com.quansu.heifengwuliu.R
 import com.quansu.heifengwuliu.databinding.WidgetSearchBinding
-import com.quansu.heifengwuliu.vmodel.CollectionVModel
 import com.quansu.heifengwuliu.vmodel.SearchVModel
 import com.ysnows.base.view.BView
 import com.ysnows.base.view.BaseView
@@ -21,6 +17,10 @@ import com.ysnows.base.view.BaseView
  */
 class SearchView(context: Context, attrs: AttributeSet) : BaseLinearLayout(context, attrs) {
     var viewModel: SearchVModel? = null
+        set(value) {
+            binding?.vm = value
+            field = value
+        }
     private var binding: WidgetSearchBinding? = null
     private var view: BView? = null
 
@@ -33,6 +33,5 @@ class SearchView(context: Context, attrs: AttributeSet) : BaseLinearLayout(conte
             view = context as BView
         }
         binding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.widget_search, this, true)
-        binding?.vm = viewModel
     }
 }

+ 1 - 3
app/src/main/res/layout/activity_collection.xml

@@ -19,9 +19,7 @@
             android:id="@+id/search"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:vm="@{vm}" >
-
-        </com.quansu.heifengwuliu.widget.SearchView >
+            app:vm="@{vm}" />
 
         <FrameLayout
             android:layout_width="match_parent"

+ 20 - 25
app/src/main/res/layout/fragment_address.xml

@@ -1,38 +1,38 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout 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">
+    xmlns:tools="http://schemas.android.com/tools" >
 
-    <data>
+    <data >
 
-    </data>
+        <variable
+            name="vm"
+            type="com.quansu.heifengwuliu.vmodel.AddressVModel" />
+
+    </data >
 
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical">
+        android:orientation="vertical" >
 
         <com.quansu.heifengwuliu.widget.SearchView
             android:id="@+id/search"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-
-        </com.quansu.heifengwuliu.widget.SearchView>
-
-
+            android:layout_height="wrap_content"
+            app:vm="@{vm}" />
 
         <FrameLayout
             android:id="@+id/lay_body"
             android:layout_width="match_parent"
             android:layout_height="0dp"
             android:layout_marginTop="8dp"
-            android:layout_weight="1">
-
+            android:layout_weight="1" >
 
             <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
                 android:id="@+id/refresh_layout"
                 android:layout_width="match_parent"
-                android:layout_height="match_parent">
+                android:layout_height="match_parent" >
 
                 <androidx.recyclerview.widget.RecyclerView
                     android:id="@+id/recycler_view"
@@ -41,8 +41,7 @@
                     app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
                     tools:listitem="@layout/item_address" />
 
-            </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
-
+            </androidx.swiperefreshlayout.widget.SwipeRefreshLayout >
 
             <com.quansu.heifengwuliu.view.CircleTextView
                 android:id="@+id/tv_tip"
@@ -54,8 +53,7 @@
                 android:textColor="@color/white"
                 android:textSize="18sp"
                 android:visibility="gone"
-                tools:visibility="visible">
-            </com.quansu.heifengwuliu.view.CircleTextView>
+                tools:visibility="visible" ></com.quansu.heifengwuliu.view.CircleTextView >
 
             <com.quansu.heifengwuliu.view.SideBar
                 android:id="@+id/sidebar"
@@ -70,11 +68,9 @@
                 android:paddingRight="5dp"
                 app:sb_tv_color="#0074e6"
                 app:sb_tv_gap="5dp"
-                app:sb_tv_size="15sp">
-            </com.quansu.heifengwuliu.view.SideBar>
+                app:sb_tv_size="15sp" ></com.quansu.heifengwuliu.view.SideBar >
 
-
-        </FrameLayout>
+        </FrameLayout >
 
         <TextView
             android:id="@+id/tv_add"
@@ -84,11 +80,10 @@
             android:gravity="center"
             android:text="添加新地址"
             android:textColor="@color/white"
-            android:textSize="@dimen/sp_16">
-
-        </TextView>
+            android:textSize="@dimen/sp_16" >
 
+        </TextView >
 
-    </LinearLayout>
+    </LinearLayout >
 
-</layout>
+</layout >

+ 2 - 0
app/src/main/res/layout/widget_search.xml

@@ -58,6 +58,8 @@
                     android:background="@null"
                     android:gravity="center_vertical"
                     android:hint="请输入要搜索的内容"
+                    android:imeOptions="actionSearch|flagNoExtractUi"
+                    android:singleLine="true"
                     android:text="@={vm.k}"
                     android:textColor="#2F2F31"
                     android:textColorHint="#929390"

+ 2 - 1
base/src/main/java/com/ysnows/base/base/BRRepository.kt

@@ -53,7 +53,7 @@ open class BRRepository : BRepository() {
 
     fun reqFirstPage(api: Observable<IResponse<Collection<Any>>>, pagable: Boolean): Observable<IResponse<Collection<Any>>> {
         this.api = api;
-        page = 0
+        page = 1;
         return reqList(api, pagable)
     }
 
@@ -111,6 +111,7 @@ open class BRRepository : BRepository() {
                     }, { throwable: Throwable? -> }) { emitter.onComplete() }
         }
     }
+
     fun autoPage(): Int {
         page += 1
         return page

+ 1 - 0
base/src/main/java/com/ysnows/base/base/BRViewModel.kt

@@ -22,6 +22,7 @@ abstract class BRViewModel<R : BRRepository> : BViewModel<R>() {
         /*如果列表里已经有数据了,请求的时候pagable=false*/
 
         val pagable = view()!!.adapter().data.isEmpty()
+        repository().page = 0;
         repository().reqFirstPage(api() as Observable<IResponse<Collection<Any>>>, pagable)
                 .subscribe()
     }