咸光金 4 rokov pred
rodič
commit
35f5b88542

+ 16 - 34
app/src/main/AndroidManifest.xml

@@ -21,9 +21,10 @@
     <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
     <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
     <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
-    <queries>
+
+    <queries >
         <package android:name="com.tencent.mm" />
-    </queries>
+    </queries >
     <application
 
         android:name="com.quansu.heifengwuliu.App"
@@ -33,9 +34,7 @@
         android:roundIcon="@mipmap/ic_launcher"
         android:supportsRtl="true"
         android:theme="@style/AppTheme.NoActionBar"
-        android:usesCleartextTraffic="true"
-
-        >
+        android:usesCleartextTraffic="true" >
 
         <meta-data
             android:name="design_width_in_dp"
@@ -44,48 +43,30 @@
             android:name="design_height_in_dp"
             android:value="667" />
 
-
         <activity android:name="com.quansu.heifengwuliu.activity.SettingsActivity" />
 
-
-<!--                    android:theme="@style/AppTheme.Launcher"
--->
-        <activity android:name=".activity.HomeActivity"
+        <activity
+            android:name=".activity.HomeActivity"
             android:screenOrientation="portrait"
-            android:theme="@style/HomeTheme"
-            >
-            <intent-filter>
+            android:theme="@style/AppTheme.Launcher" >
+            <intent-filter >
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-
-        <activity android:name=".activity.OneLoginActivity"
-            android:launchMode="singleTask"
-            >
-<!--            <intent-filter>-->
-<!--                <action android:name="android.intent.action.MAIN" />-->
-<!--                <category android:name="android.intent.category.LAUNCHER" />-->
-<!--            </intent-filter>-->
-
-        </activity>
+            </intent-filter >
+        </activity >
 
 
+        <activity
+            android:name=".activity.OneLoginActivity"
+            android:launchMode="singleTask" />
 
         <activity android:name="com.quansu.heifengwuliu.activity.TodosActivity" />
 
         <activity android:name="com.quansu.heifengwuliu.activity.LoginActivity" />
         <activity android:name="com.quansu.heifengwuliu.activity.RegisterActivity" />
-        <activity
-            android:name="com.quansu.heifengwuliu.activity.PrivateCenterActivity"
-            android:launchMode="singleTask" >
-            <!--            <intent-filter >-->
-            <!--                <action android:name="android.intent.action.MAIN" />-->
-            <!--                <category android:name="android.intent.category.LAUNCHER" />-->
-            <!--            </intent-filter >-->
-        </activity >
         <activity android:name="com.quansu.heifengwuliu.activity.AboutActivity" />
         <activity android:name="com.quansu.heifengwuliu.activity.WebViewActivity" />
+
         <activity
             android:name="com.quansu.heifengwuliu.activity.SplashActivity"
             android:theme="@style/AppTheme.Launcher" />
@@ -95,10 +76,11 @@
             android:exported="true"
             android:launchMode="singleTask"
             android:taskAffinity="com.quansu.heifengwuliu" />
+
         <activity android:name=".activity.MsgActivity" />
         <activity android:name=".activity.AccountActivity" />
         <activity android:name=".activity.PersonalVerityActivity" />
-        <activity android:name=".activity.AddressActivity"/>
+        <activity android:name=".activity.AddressActivity" />
         <activity android:name=".activity.ComVerityActivity" />
         <activity android:name=".activity.CollectionActivity" />
 

+ 22 - 49
app/src/main/java/com/quansu/heifengwuliu/activity/AccountActivity.kt

@@ -1,74 +1,47 @@
 package com.quansu.heifengwuliu.activity
 
-import android.graphics.Color
-import android.graphics.Typeface
-import android.view.View
 import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentPagerAdapter
-import androidx.viewpager.widget.PagerAdapter
-import com.qmuiteam.qmui.util.QMUIDisplayHelper
-import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
+import com.qmuiteam.qmui.widget.tab.QMUITab
+import com.qmuiteam.qmui.widget.tab.QMUITabBuilder
 import com.quansu.heifengwuliu.R
-import com.quansu.heifengwuliu.base.MBActivity
+import com.quansu.heifengwuliu.base.MBTabActivity
 import com.quansu.heifengwuliu.databinding.ActivityAccountBinding
 import com.quansu.heifengwuliu.fragment.AccountAnalysisFragment
 import com.quansu.heifengwuliu.fragment.AccountBillFragment
 import com.ysnows.base.base.BRepository
 import com.ysnows.base.base.BViewModel
 
-class AccountActivity : MBActivity<BViewModel<BRepository>, ActivityAccountBinding>() {
+class AccountActivity : MBTabActivity<BViewModel<BRepository>, ActivityAccountBinding>() {
 
-    override fun initView(view: View?) {
-        super.initView(view)
 
-        initTabs()
-        initPager()
+    override fun binding(): ActivityAccountBinding {
+        return ActivityAccountBinding.inflate(layoutInflater)
     }
 
-    private fun initPager() {
-        val mPagerAdapter: PagerAdapter = object : FragmentPagerAdapter(supportFragmentManager) {
-            override fun getItem(position: Int): Fragment {
-                return if (position == 1) {
-                    AccountAnalysisFragment()
-                } else AccountBillFragment()
-            }
 
-            override fun getCount(): Int {
-                return 2
-            }
-        }
-        binding.pager.adapter = mPagerAdapter
-        binding.tabs.setupWithViewPager(binding.pager, false)
+    override fun title(): String? {
+        return getString(R.string.my_account)
     }
 
+    override fun getPageItem(position: Int): Fragment {
+        return if (position == 1) {
+            AccountAnalysisFragment()
+        } else AccountBillFragment()
+    }
 
-    private fun initTabs() {
-        binding.tabs.setIndicator(QMUITabIndicator(QMUIDisplayHelper.dp2px(context(), 3), false, true))
-        val builder = binding.tabs.tabBuilder()
-        builder
-                .skinChangeWithTintColor(false)
-                .setSelectColor(Color.parseColor("#2E4E71"))
-                .setNormalColor(Color.parseColor("#666666"))
-                .setTypeface(Typeface.DEFAULT_BOLD, Typeface.DEFAULT_BOLD)
-                .setDynamicChangeIconColor(false)
-        val component = builder
+    override fun getPageCount(): Int {
+        return 2
+    }
+
+    override fun createTabs(tabBuilder: QMUITabBuilder): Array<QMUITab> {
+
+        val component = tabBuilder
                 .setText(getString(R.string.bill))
                 .build(context())
-        val util = builder
+        val util = tabBuilder
                 .setText(getText(R.string.analysis))
                 .build(context())
-        binding.tabs
-                .addTab(component)
-                .addTab(util)
-    }
 
-
-    override fun binding(): ActivityAccountBinding {
-        return ActivityAccountBinding.inflate(layoutInflater)
-    }
-
-
-    override fun title(): String? {
-        return getString(R.string.my_account)
+        return arrayOf(component, util)
     }
 }

+ 6 - 11
app/src/main/java/com/quansu/heifengwuliu/activity/AddressActivity.kt

@@ -17,24 +17,21 @@ import com.ysnows.base.utils.B
  *Created by shihuiyun
  *on 2020/9/11
  */
-class AddressActivity : MBActivity<BViewModel<BRepository>, ActivityAddressBinding>(){
+class AddressActivity : MBActivity<BViewModel<BRepository>, ActivityAddressBinding>() {
     private var adapter: FragAdapter? = null
-    var list= emptyArray<Fragment>()
-    var type="1"
+    var list = emptyArray<Fragment>()
+    var type = "1"
 
     override fun __before() {
         super.__before()
         var bundle = intent.extras
-        if (null != bundle)
-        {
+        if (null != bundle) {
             type = bundle.getString("type")
         }
 
     }
 
 
-
-
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         initViewPager()
@@ -63,10 +60,8 @@ class AddressActivity : MBActivity<BViewModel<BRepository>, ActivityAddressBindi
             override fun onPageScrollStateChanged(state: Int) {}
         })
 
-        binding.llOne.setOnClickListener(View.OnClickListener { view: View? ->  binding.viewPager.setCurrentItem(0) })
-        binding.llTwo.setOnClickListener(View.OnClickListener { view: View? ->  binding.viewPager.setCurrentItem(1) })
-
-
+        binding.llOne.setOnClickListener(View.OnClickListener { view: View? -> binding.viewPager.setCurrentItem(0) })
+        binding.llTwo.setOnClickListener(View.OnClickListener { view: View? -> binding.viewPager.setCurrentItem(1) })
 
     }
 

+ 2 - 6
app/src/main/java/com/quansu/heifengwuliu/activity/HomeActivity.kt

@@ -35,8 +35,6 @@ class HomeActivity : MBActivity<HomeVModel, ActivityHomeBinding>() {
         super.initCreate(savedInstanceState)
         initMainMenu()
         binding.mainMenu.switchTab(0)
-
-        vm.getUserInfo();
     }
 
     override fun vmClass(): Class<HomeVModel> {
@@ -54,10 +52,7 @@ class HomeActivity : MBActivity<HomeVModel, ActivityHomeBinding>() {
 
     private fun initMainMenu() {
 
-//        vm.user.observe(this){}
-
-
-       // val oneFragment = IndexFragment()
+        // val oneFragment = IndexFragment()
         val oneFragment = DeliverGoodsFragment()
         val twoFragment = WayBillFragment()
         val threeFragment = MineFragment()
@@ -82,6 +77,7 @@ class HomeActivity : MBActivity<HomeVModel, ActivityHomeBinding>() {
                 .setNormalDrawable(ContextCompat.getDrawable(context(), R.drawable.menu_tyre))
                 .setSelectedDrawable(ContextCompat.getDrawable(context(), R.drawable.menu_tyre_focus))
                 .build(context())
+
         binding.mainMenu
                 .addTab(one)
                 .addTab(two)

+ 0 - 88
app/src/main/java/com/quansu/heifengwuliu/activity/PrivateCenterActivity.kt

@@ -1,88 +0,0 @@
-package com.quansu.heifengwuliu.activity
-
-import android.appwidget.AppWidgetManager
-import android.content.Intent
-import android.os.Bundle
-import com.hwangjr.rxbus.annotation.Subscribe
-import com.hwangjr.rxbus.annotation.Tag
-import com.qmuiteam.qmui.kotlin.onClick
-import com.quansu.heifengwuliu.R
-import com.quansu.heifengwuliu.base.MBActivity
-import com.quansu.heifengwuliu.config.ConfigMMKV
-import com.quansu.heifengwuliu.config.ConfigRx
-import com.quansu.heifengwuliu.databinding.ActivityPrivateCenterBinding
-import com.quansu.heifengwuliu.repository.UserInfoRepository
-import com.quansu.heifengwuliu.vmodel.PrivateCenterVModel
-import com.ysnows.base.base.BRepository
-import com.ysnows.base.ccretrofit.CCRetrofit
-import com.ysnows.base.route.IApp
-import com.ysnows.base.utils.MMKVManager
-
-class PrivateCenterActivity : MBActivity<PrivateCenterVModel, ActivityPrivateCenterBinding>() {
-
-    override fun title(): String? {
-        return "个人中心"
-    }
-
-    override fun initCreate(savedInstanceState: Bundle?) {
-        super.initCreate(savedInstanceState)
-        sendBroadcast(Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE))
-
-
-        if (MMKVManager.instance().decodeBool(ConfigMMKV.FIRST_OPEN, true)) {
-            single(SplashActivity::class.java)
-        }
-
-    }
-
-
-    override fun listeners() {
-        super.listeners()
-
-        binding.laySettings.onClick {
-//            CCRetrofit.instance()
-//                    .with(this)
-//                    .create(IApp::class.java)
-//                    .settings()
-//                    .subscribe()
-        }
-
-        binding.layNote.onClick {
-//            CCRetrofit.instance()
-//                    .with(this)
-//                    .create(IApp::class.java)
-//                    .todoList()
-//                    .subscribe()
-        }
-
-        binding.layAb.onClick {
-            toast(R.string.developing)
-        }
-    }
-
-    override fun binding(): ActivityPrivateCenterBinding {
-        return ActivityPrivateCenterBinding.inflate(layoutInflater)
-    }
-
-    override val isRxbus: Boolean
-        get() = true
-
-    override fun backable(): Boolean {
-        return false
-    }
-
-    override fun vmClass(): Class<PrivateCenterVModel> {
-        return PrivateCenterVModel::class.java
-    }
-
-    @Subscribe(tags = [Tag(ConfigRx.LOGIN)])
-    fun logout(from: String) {
-        vm.firstReq()
-    }
-
-    override fun createRepository(): BRepository {
-        return UserInfoRepository()
-    }
-
-
-}

+ 44 - 0
app/src/main/java/com/quansu/heifengwuliu/base/MBTabActivity.kt

@@ -0,0 +1,44 @@
+package com.quansu.heifengwuliu.base
+
+import androidx.databinding.ViewDataBinding
+import com.quansu.heifengwuliu.R
+import com.quansu.heifengwuliu.activity.OneLoginActivity
+import com.quansu.heifengwuliu.model.User
+import com.ysnows.base.base.BTabActivity
+import com.ysnows.base.base.BViewModel
+import com.ysnows.base.inter.IUser
+import com.ysnows.base.utils.UiSwitch
+
+/**
+ * Mine Base Activity
+ *
+ * @param <VM>
+ * @param <B>
+</B></VM> */
+abstract class MBTabActivity<VM : BViewModel<*>, B : ViewDataBinding> : BTabActivity<VM, B>() {
+    override fun toLogin() {
+        super.toLogin()
+//        toast(R.string.please_login)
+        UiSwitch.single(context(), OneLoginActivity::class.java)
+    }
+
+    override fun user(): IUser? {
+        return User.get()
+    }
+
+    override fun bgColor(): Int {
+        return R.color.white
+    }
+
+    override fun titleColor(): Int {
+        return R.color.black
+    }
+
+    override fun rightTextColor(): Int {
+        return R.color.black
+    }
+
+    override fun backDrawable(): Int {
+        return R.drawable.ic_back_black
+    }
+}

+ 47 - 0
app/src/main/java/com/quansu/heifengwuliu/base/MBTabFragment.kt

@@ -0,0 +1,47 @@
+package com.quansu.heifengwuliu.base
+
+import androidx.databinding.ViewDataBinding
+import com.quansu.heifengwuliu.R
+import com.quansu.heifengwuliu.activity.OneLoginActivity
+import com.quansu.heifengwuliu.model.User
+import com.ysnows.base.base.BTabFragment
+import com.ysnows.base.base.BViewModel
+import com.ysnows.base.inter.IUser
+import com.ysnows.base.utils.UiSwitch
+
+/**
+ * Mine Base Fragment
+ *
+ * @param <VM>
+ * @param <B>
+</B></VM> */
+abstract class MBTabFragment<VM : BViewModel<*>, B : ViewDataBinding> : BTabFragment<VM, B>() {
+    override fun toLogin() {
+        super.toLogin()
+        UiSwitch.single(context(), OneLoginActivity::class.java)
+//        toast(R.string.please_login)
+
+    }
+
+    override fun user(): IUser? {
+        return User.get()
+    }
+
+
+    override fun bgColor(): Int {
+        return R.color.white
+    }
+
+    override fun titleColor(): Int {
+        return R.color.black
+    }
+
+    override fun rightTextColor(): Int {
+        return R.color.black
+    }
+
+    override fun backDrawable(): Int {
+        return R.drawable.ic_back_black
+    }
+
+}

+ 3 - 7
app/src/main/java/com/quansu/heifengwuliu/fragment/DeliverGoodsFragment.kt

@@ -17,22 +17,18 @@ import com.ysnows.base.base.BViewModel
  *Created by shihuiyun
  *on 2020/9/11
  */
-class DeliverGoodsFragment : MBFragment<BViewModel<BRepository>, FragmentDelivergoodsBinding>(){
+class DeliverGoodsFragment : MBFragment<BViewModel<BRepository>, FragmentDelivergoodsBinding>() {
 
-    var fragments= emptyArray<Fragment>()
+    var fragments = emptyArray<Fragment>()
 
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         initFragments()
         switchContent(0)
-
-
     }
 
 
-
-
     override fun listeners() {
         super.listeners()
 
@@ -99,5 +95,5 @@ class DeliverGoodsFragment : MBFragment<BViewModel<BRepository>, FragmentDeliver
     }
 
     override val isRxbus: Boolean
-        get() =true
+        get() = true
 }

+ 26 - 55
app/src/main/java/com/quansu/heifengwuliu/fragment/WayBillFragment.kt

@@ -1,17 +1,13 @@
 package com.quansu.heifengwuliu.fragment
 
-import android.graphics.Color
-import android.graphics.Typeface
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentPagerAdapter
-import androidx.viewpager.widget.PagerAdapter
-import com.qmuiteam.qmui.util.QMUIDisplayHelper
-import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
+import com.qmuiteam.qmui.widget.tab.QMUITab
+import com.qmuiteam.qmui.widget.tab.QMUITabBuilder
 import com.quansu.heifengwuliu.R
-import com.quansu.heifengwuliu.base.MBFragment
+import com.quansu.heifengwuliu.base.MBTabFragment
 import com.quansu.heifengwuliu.databinding.FragmentWaybillBinding
 import com.ysnows.base.base.BRepository
 import com.ysnows.base.base.BViewModel
@@ -20,82 +16,57 @@ import com.ysnows.base.base.BViewModel
  *Created by shihuiyun
  *on 2020/9/9
  */
-class WayBillFragment : MBFragment<BViewModel<BRepository>, FragmentWaybillBinding>() {
+class WayBillFragment : MBTabFragment<BViewModel<BRepository>, FragmentWaybillBinding>() {
 
     override fun initView(view: View?) {
         super.initView(view)
-
         titleBar?.tvRight?.text = getString(R.string.filter)
 
-        initTabs()
-        initPager()
+    }
+
+    override fun binding(inflater: LayoutInflater, container: ViewGroup?): FragmentWaybillBinding {
+        return FragmentWaybillBinding.inflate(layoutInflater)
+    }
 
+    override fun title(): String? {
+        return getString(R.string.source_information)
     }
 
-    private fun initPager() {
-        val mPagerAdapter: PagerAdapter = object : FragmentPagerAdapter(childFragmentManager) {
-            override fun getItem(position: Int): Fragment {
-                return OrderListFragment()
-            }
-
-            override fun getCount(): Int {
-                return 5
-            }
-        }
-        binding.pager.adapter = mPagerAdapter
-        binding.tabs.setupWithViewPager(binding.pager, false)
+    override fun backable(): Boolean {
+        return false
     }
 
+    override fun getPageItem(position: Int): Fragment {
+        return OrderListFragment()
+    }
 
-    private fun initTabs() {
-        binding.tabs.setIndicator(QMUITabIndicator(QMUIDisplayHelper.dp2px(context(), 3), false, true))
-        val builder = binding.tabs.tabBuilder()
-        builder
-                .skinChangeWithTintColor(false)
-                .setSelectColor(Color.parseColor("#2E4E71"))
-                .setNormalColor(Color.parseColor("#666666"))
-                .setTypeface(Typeface.DEFAULT_BOLD, Typeface.DEFAULT_BOLD)
-                .setDynamicChangeIconColor(false)
+    override fun getPageCount(): Int {
+        return 5
+    }
 
-        val component = builder
+    override fun createTabs(tabBuilder: QMUITabBuilder): Array<QMUITab> {
+        val component = tabBuilder
                 .setText(getString(R.string.all))
                 .build(context())
 
-        val util = builder
+        val util = tabBuilder
                 .setText(getText(R.string.to_order_receive))
                 .build(context())
 
-        val ongoing = builder
+        val ongoing = tabBuilder
                 .setText(getText(R.string.on_going))
                 .build(context())
 
-        val canceled = builder
+        val canceled = tabBuilder
                 .setText(getText(R.string.canceled))
                 .build(context())
 
-        val completed = builder
+        val completed = tabBuilder
                 .setText(getText(R.string.completed))
                 .build(context())
 
+        return arrayOf(component, util, ongoing, canceled, completed)
 
-        binding.tabs
-                .addTab(component)
-                .addTab(util)
-                .addTab(ongoing)
-                .addTab(canceled)
-                .addTab(completed)
     }
 
-
-    override fun binding(inflater: LayoutInflater, container: ViewGroup?): FragmentWaybillBinding {
-        return FragmentWaybillBinding.inflate(layoutInflater)
-    }
-
-    override fun title(): String? {
-        return getString(R.string.source_information)
-    }
-
-    override fun backable(): Boolean {
-        return false
-    }
 }

+ 1 - 24
app/src/main/java/com/quansu/heifengwuliu/repository/HomeRepository.kt

@@ -1,28 +1,5 @@
 package com.quansu.heifengwuliu.repository
 
-import android.annotation.SuppressLint
-import com.quansu.heifengwuliu.model.User
-import com.quansu.heifengwuliu.utils.net.NetEngine
-import com.ysnows.base.base.BRepository
-import io.reactivex.Observable
-
-class HomeRepository : BRepository() {
-
-    @SuppressLint("CheckResult")
-    fun getUserInfo(): Observable<User?> {
-        return Observable.create<User?> { emitter ->
-            lreq(NetEngine.service.getUser())
-                    .doOnNext {
-                        if (it.ok()) {
-                            it.data()?.save()
-                            emitter.onNext(it.data()!!)
-                        }
-                    }
-                    .subscribe();
-        }
-
-
-    }
-
+class HomeRepository : UserInfoRepository() {
 
 }

+ 3 - 3
app/src/main/java/com/quansu/heifengwuliu/vmodel/HomeVModel.kt

@@ -6,9 +6,10 @@ import com.quansu.heifengwuliu.repository.HomeRepository
 import com.ysnows.base.base.BViewModel
 
 open class HomeVModel : BViewModel<HomeRepository>() {
-    val user: MutableLiveData<User> = MutableLiveData<User>()
+    val user: MutableLiveData<User> = MutableLiveData<User>(User.get())
 
-    fun getUserInfo() {
+    override fun firstReq() {
+        super.firstReq()
         repository()
                 .getUserInfo()
                 .doOnNext {
@@ -17,5 +18,4 @@ open class HomeVModel : BViewModel<HomeRepository>() {
                 .subscribe()
     }
 
-
 }

+ 1 - 1
app/src/main/res/layout/activity_account.xml

@@ -29,7 +29,7 @@
                 android:background="@color/color_page" />
 
             <com.qmuiteam.qmui.widget.QMUIViewPager
-                android:id="@+id/pager"
+                android:id="@+id/view_pager"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:layout_marginTop="58dp" />

+ 0 - 218
app/src/main/res/layout/activity_private_center.xml

@@ -1,218 +0,0 @@
-<?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" >
-
-    <data >
-
-        <import type="com.quansu.heifengwuliu.utils.MUiSwitch" />
-
-        <variable
-            name="vm"
-            type="com.quansu.heifengwuliu.vmodel.PrivateCenterVModel" />
-
-    </data >
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="@color/color_page_bg"
-        android:fitsSystemWindows="true"
-        android:orientation="vertical" >
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="150dp"
-            android:layout_marginBottom="12dp"
-            android:background="@color/colorPrimary"
-            android:gravity="center"
-            android:orientation="vertical"
-            android:paddingTop="12dp" >
-
-            <com.qmuiteam.qmui.widget.QMUIRadiusImageView
-                android:id="@+id/img_avatar"
-                android:layout_width="75dp"
-                android:layout_height="75dp"
-                android:onClick="@{v-> vm.user==null?vm.view().toLogin():null}"
-                android:padding="@dimen/dp_4"
-                android:src="@mipmap/ic_launcher"
-                app:qmui_is_circle="true"
-                app:url="@{vm.user.avatar()}" />
-
-            <TextView
-                android:id="@+id/tv_name"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="6dp"
-                android:onClick="@{v-> vm.user==null?vm.view().toLogin():null}"
-                android:textColor="@color/white"
-                android:textSize="@dimen/sp_16" />
-
-        </LinearLayout >
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:orientation="vertical" >
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_weight="1"
-                android:orientation="vertical" >
-
-                <RelativeLayout
-                    android:id="@+id/lay_ab"
-                    android:layout_width="match_parent"
-                    android:layout_height="48dp"
-                    android:background="@color/white"
-
-                    android:paddingStart="@dimen/dp_14"
-                    android:visibility="gone" >
-
-                    <ImageView
-                        android:id="@+id/img_icon13"
-                        android:layout_width="30dp"
-                        android:layout_height="30dp"
-                        android:layout_centerVertical="true"
-                        android:padding="-4dp"
-                        android:src="@drawable/ic_ab" />
-
-                    <TextView
-                        android:id="@+id/tv_title13"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_centerVertical="true"
-                        android:layout_marginLeft="@dimen/dp_10"
-                        android:layout_toRightOf="@id/img_icon13"
-                        android:gravity="center_vertical"
-                        android:text="@string/arrange_storage"
-                        android:textColor="@color/primary_text"
-                        android:textSize="@dimen/sp_16" />
-
-                    <ImageView
-                        android:layout_width="30dp"
-                        android:layout_height="30dp"
-                        android:layout_alignParentRight="true"
-                        android:layout_centerVertical="true"
-                        android:layout_marginRight="@dimen/dp_14"
-                        android:padding="@dimen/dp_6"
-                        android:src="@drawable/ic_arrow_right" />
-
-                    <View
-                        android:layout_width="match_parent"
-                        android:layout_height="1dp"
-                        android:layout_alignLeft="@id/tv_title13"
-                        android:layout_alignParentBottom="true"
-                        android:background="@color/color_page_bg" />
-
-                </RelativeLayout >
-
-                <RelativeLayout
-                    android:id="@+id/lay_note"
-
-                    android:layout_width="match_parent"
-                    android:layout_height="48dp"
-                    android:background="@color/white"
-                    android:paddingStart="@dimen/dp_14"
-                    android:visibility="gone" >
-
-                    <ImageView
-                        android:id="@+id/img_icon3"
-                        android:layout_width="30dp"
-                        android:layout_height="30dp"
-                        android:layout_centerVertical="true"
-                        android:padding="3.5dp"
-                        android:src="@drawable/ic_note" />
-
-                    <TextView
-                        android:id="@+id/tv_title3"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_centerVertical="true"
-                        android:layout_marginLeft="@dimen/dp_10"
-                        android:layout_toRightOf="@id/img_icon3"
-                        android:gravity="center_vertical"
-                        android:text="@string/todo_list"
-                        android:textColor="@color/primary_text"
-                        android:textSize="@dimen/sp_16" />
-
-                    <ImageView
-                        android:layout_width="30dp"
-                        android:layout_height="30dp"
-                        android:layout_alignParentRight="true"
-                        android:layout_centerVertical="true"
-                        android:layout_marginRight="@dimen/dp_14"
-                        android:padding="@dimen/dp_6"
-                        android:src="@drawable/ic_arrow_right" />
-
-                    <View
-                        android:layout_width="match_parent"
-                        android:layout_height="1dp"
-                        android:layout_alignLeft="@id/tv_title3"
-                        android:layout_alignParentBottom="true"
-                        android:background="@color/color_page_bg" />
-
-                </RelativeLayout >
-
-                <RelativeLayout
-                    android:id="@+id/lay_settings"
-                    android:layout_width="match_parent"
-                    android:layout_height="48dp"
-                    android:background="@color/white"
-                    android:paddingStart="@dimen/dp_14"
-                    android:visibility="gone" >
-
-                    <ImageView
-                        android:id="@+id/img_icon1"
-                        android:layout_width="30dp"
-                        android:layout_height="30dp"
-                        android:layout_centerVertical="true"
-                        android:padding="1dp"
-                        android:src="@drawable/ic_private_settings" />
-
-                    <TextView
-                        android:id="@+id/tv_title1"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_centerVertical="true"
-                        android:layout_marginLeft="@dimen/dp_10"
-                        android:layout_toRightOf="@id/img_icon1"
-                        android:gravity="center_vertical"
-                        android:text="设置"
-                        android:textColor="@color/primary_text"
-                        android:textSize="@dimen/sp_16" />
-
-                    <ImageView
-                        android:layout_width="30dp"
-                        android:layout_height="30dp"
-                        android:layout_alignParentRight="true"
-                        android:layout_centerVertical="true"
-                        android:layout_marginRight="@dimen/dp_14"
-                        android:padding="@dimen/dp_6"
-                        android:src="@drawable/ic_arrow_right" />
-
-                    <View
-                        android:layout_width="match_parent"
-                        android:layout_height="1dp"
-                        android:layout_alignLeft="@id/tv_title1"
-                        android:layout_alignParentBottom="true"
-                        android:background="@color/color_page_bg" />
-
-                </RelativeLayout >
-
-            </LinearLayout >
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center_horizontal"
-                android:layout_marginBottom="@dimen/dp_10"
-                android:text="@string/copy_right"
-                android:textColor="@color/text_hint"
-                android:textSize="@dimen/sp_12"
-
-                />
-        </LinearLayout >
-
-    </LinearLayout >
-</layout >

+ 2 - 1
app/src/main/res/layout/fragment_mine.xml

@@ -13,6 +13,7 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:background="@color/color_page_bg"
         android:orientation="vertical" >
 
         <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
@@ -171,8 +172,8 @@
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:layout_weight="1"
-                        android:onClick="@{v->vm.goCollection()}"
                         android:gravity="center"
+                        android:onClick="@{v->vm.goCollection()}"
 
                         android:orientation="vertical" >
 

+ 2 - 1
app/src/main/res/layout/fragment_waybill.xml

@@ -8,6 +8,7 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:background="@color/color_page_bg"
         android:orientation="vertical" >
 
         <FrameLayout
@@ -29,7 +30,7 @@
                 android:background="@color/color_page" />
 
             <com.qmuiteam.qmui.widget.QMUIViewPager
-                android:id="@+id/pager"
+                android:id="@+id/view_pager"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:layout_marginTop="58dp" />

+ 0 - 7
app/src/main/res/values/theme.xml

@@ -99,13 +99,6 @@
         <item name="android:windowBackground" >@drawable/launcher_bg</item >
     </style >
 
-    <style name="HomeTheme" parent="AppTheme" >
-        <!-- Customize your theme here. -->
-        <item name="android:windowFullscreen" >false</item >
-        <item name="android:windowIsTranslucent" >true</item >
-    </style >
-
-
 
     <!-- blue skin -->
     <style name="app_skin_blue" parent="AppTheme" />

+ 77 - 0
base/src/main/java/com/ysnows/base/base/BTabActivity.kt

@@ -0,0 +1,77 @@
+package com.ysnows.base.base
+
+import android.graphics.Color
+import android.graphics.Typeface
+import android.os.Bundle
+import androidx.databinding.ViewDataBinding
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentPagerAdapter
+import androidx.viewpager.widget.PagerAdapter
+import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import com.qmuiteam.qmui.widget.QMUIViewPager
+import com.qmuiteam.qmui.widget.tab.QMUITab
+import com.qmuiteam.qmui.widget.tab.QMUITabBuilder
+import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
+import com.qmuiteam.qmui.widget.tab.QMUITabSegment
+import com.ysnows.base.R
+import com.ysnows.base.inter.IPagerAdapter
+
+/**
+ * Mine Base Activity
+ *
+ * @param <VM>
+ * @param <B>
+</B></VM> */
+abstract class BTabActivity<VM : BViewModel<*>, B : ViewDataBinding> : BActivity<VM, B>(),IPagerAdapter {
+
+
+    override fun initCreate(savedInstanceState: Bundle?) {
+        super.initCreate(savedInstanceState)
+        initTabs()
+        initPager()
+    }
+
+    protected fun tabs(): QMUITabSegment {
+        return binding.root.findViewById(R.id.tabs)
+    }
+
+    protected fun viewPager(): QMUIViewPager {
+        return binding.root.findViewById(R.id.view_pager)
+    }
+
+
+    private fun initPager() {
+        val mPagerAdapter: PagerAdapter = object : FragmentPagerAdapter(supportFragmentManager) {
+            override fun getItem(position: Int): Fragment {
+                return getPageItem(position)
+            }
+
+            override fun getCount(): Int {
+                return getPageCount()
+            }
+        }
+        viewPager().adapter = mPagerAdapter
+        tabs().setupWithViewPager(viewPager(), false)
+    }
+
+    abstract fun createTabs(tabBuilder: QMUITabBuilder): Array<QMUITab>
+
+    private fun initTabs() {
+        tabs().setIndicator(QMUITabIndicator(QMUIDisplayHelper.dp2px(context(), 3), false, true))
+        val builder = tabs().tabBuilder()
+        builder
+                .skinChangeWithTintColor(false)
+                .setSelectColor(Color.parseColor("#2E4E71"))
+                .setNormalColor(Color.parseColor("#666666"))
+                .setTypeface(Typeface.DEFAULT_BOLD, Typeface.DEFAULT)
+                .setDynamicChangeIconColor(false)
+
+        val createdTabs = createTabs(builder)
+        createdTabs.forEach {
+            tabs().addTab(it)
+        }
+
+    }
+
+
+}

+ 77 - 0
base/src/main/java/com/ysnows/base/base/BTabFragment.kt

@@ -0,0 +1,77 @@
+package com.ysnows.base.base
+
+import android.graphics.Color
+import android.graphics.Typeface
+import android.os.Bundle
+import androidx.databinding.ViewDataBinding
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentPagerAdapter
+import androidx.viewpager.widget.PagerAdapter
+import com.qmuiteam.qmui.util.QMUIDisplayHelper
+import com.qmuiteam.qmui.widget.QMUIViewPager
+import com.qmuiteam.qmui.widget.tab.QMUITab
+import com.qmuiteam.qmui.widget.tab.QMUITabBuilder
+import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
+import com.qmuiteam.qmui.widget.tab.QMUITabSegment
+import com.ysnows.base.R
+import com.ysnows.base.inter.IPagerAdapter
+
+/**
+ * Mine Base Fragment
+ *
+ * @param <VM>
+ * @param <B>
+</B></VM> */
+abstract class BTabFragment<VM : BViewModel<*>, B : ViewDataBinding> : BFragment<VM, B>(), IPagerAdapter {
+
+    override fun init(savedInstanceState: Bundle?) {
+        super.init(savedInstanceState)
+
+        initTabs()
+        initPager()
+
+    }
+
+    protected fun tabs(): QMUITabSegment {
+        return binding.root.findViewById(R.id.tabs)
+    }
+
+    protected fun viewPager(): QMUIViewPager {
+        return binding.root.findViewById(R.id.view_pager)
+    }
+
+
+    private fun initPager() {
+        val mPagerAdapter: PagerAdapter = object : FragmentPagerAdapter(childFragmentManager) {
+            override fun getItem(position: Int): Fragment {
+                return getPageItem(position)
+            }
+
+            override fun getCount(): Int {
+                return getPageCount()
+            }
+        }
+        viewPager().adapter = mPagerAdapter
+        tabs().setupWithViewPager(viewPager(), false)
+    }
+
+    abstract fun createTabs(tabBuilder: QMUITabBuilder): Array<QMUITab>
+
+    private fun initTabs() {
+        tabs().setIndicator(QMUITabIndicator(QMUIDisplayHelper.dp2px(context(), 3), false, true))
+        val builder = tabs().tabBuilder()
+        builder
+                .skinChangeWithTintColor(false)
+                .setSelectColor(Color.parseColor("#2E4E71"))
+                .setNormalColor(Color.parseColor("#666666"))
+                .setTypeface(Typeface.DEFAULT_BOLD, Typeface.DEFAULT)
+                .setDynamicChangeIconColor(false)
+
+        val createdTabs = createTabs(builder)
+        createdTabs.forEach {
+            tabs().addTab(it)
+        }
+
+    }
+
+}

+ 8 - 0
base/src/main/java/com/ysnows/base/inter/IPagerAdapter.kt

@@ -0,0 +1,8 @@
+package com.ysnows.base.inter
+
+import androidx.fragment.app.Fragment
+
+interface IPagerAdapter {
+        fun getPageItem(position: Int): Fragment
+        fun getPageCount(): Int
+    }

+ 1 - 1
base/src/main/java/com/ysnows/base/widget/tablayout/YTabLayout.java

@@ -132,7 +132,7 @@ public class YTabLayout extends RecyclerView implements OnItemClickListener {
             }
         }
 
-        transaction.addToBackStack(getClass().getCanonicalName());
+//        transaction.addToBackStack(getClass().getCanonicalName());
         transaction.commitAllowingStateLoss();
     }
 

+ 3 - 0
base/src/main/res/values/ids.xml

@@ -11,4 +11,7 @@
     <item name="recycler_sticky_header" type="id" />
     <item name="lay_container" type="id" />
     <item name="img_sort" type="id" />
+
+    <item name="tabs" type="id" />
+    <item name="view_pager" type="id" />
 </resources >