添加退出逻辑

This commit is contained in:
lijia 2024-10-30 09:00:16 +08:00
parent 68084cfcf1
commit 27bb3b8085
22 changed files with 857 additions and 42 deletions

View File

@ -116,7 +116,7 @@
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".ui.home.activtiy.AddressEditActivity"
android:name=".ui.address.AddressEditOrAddActivity"
android:configChanges="keyboardHidden|orientation|locale"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
@ -166,6 +166,17 @@
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".ui.address.AddressListActivity"
android:configChanges="keyboardHidden|orientation|locale"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".ui.mine.activity.SettingActivity"
android:configChanges="keyboardHidden|orientation|locale"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".ui.MarketsActivity"
android:configChanges="keyboardHidden|orientation|locale"

View File

@ -0,0 +1,32 @@
package com.dhsd.glowner.adapter
import android.content.Context
import android.view.ViewGroup
import com.chad.library.adapter4.BaseQuickAdapter
import com.chad.library.adapter4.viewholder.QuickViewHolder
import com.dhsd.glowner.R
import com.dhsd.glowner.bean.AddressBean
/**
* @ClassName AddressAdapter
* @Author john
* @Date 2024/10/29 17:03
* @Description TODO
*/
class AddressAdapter : BaseQuickAdapter<AddressBean, QuickViewHolder>() {
override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: AddressBean?) {
item?.let {
// if ("0"==it.userType) """${it.contactPerson} ${item.contactNumber}""" else """${it.companyName} ${item.companyCode}"""
holder.setText(R.id.tvAddress,it.addressDetail)
holder.setText(R.id.tvName, """${it.contactPerson} ${item.contactNumber}""")
}
}
override fun onCreateViewHolder(
context: Context,
parent: ViewGroup,
viewType: Int
): QuickViewHolder {
return QuickViewHolder(R.layout.item_address, parent)
}
}

View File

@ -10,6 +10,7 @@ object AppConfig {
const val BUGLY_APP_ID = "a5b894cef7"
const val TIME = "DA_HE_TIME"
const val ID = "DA_HE_ID"
const val IS_ADD = "DA_HE_IS_ADD"
const val CAPTAIN_ID = "CAPTAIN_ID"
const val PWD = "DA_HE_PHONE"
const val CODE = "DA_HE_PHONE"

View File

@ -0,0 +1,62 @@
package com.dhsd.glowner.bean
/**
*新增装卸货地址postBean
* @constructor
*/
data class PostAddressBean(
val addressDetail: String,
val addressType: String,
val area: String,
val areaCode: String,
val city: String,
val cityCode: String,
val companyCode: String,
val companyName: String,
val contactNumber: String,
val contactPerson: String,
val idCard: Any,
val idDefault: String,
val isDeleted: String,
val latitude: String,
val longitude: String,
val province: String,
val provinceCode: String,
val sortValue: String,
val tagContent: String,
val userType: String
)
data class AddressBean(
val addressDetail: String,
val addressId: String,
val addressType: String,
val area: String,
val areaCode: String,
val city: String,
val cityCode: String,
val companyCode: String,
val companyName: String,
val contactNumber: String,
val contactPerson: String,
val createBy: String,
val createTime: String,
val idCard: String,
val idDefault: String,
val isDeleted: String,
val latitude: String,
val longitude: String,
val province: String,
val provinceCode: String,
val remark: String,
val shipperId: String,
val sortValue: String,
val tagContent: String,
val updateBy: String,
val updateTime: String,
val userType: String
)

View File

@ -8,6 +8,7 @@ package com.dahe.glex.bean
*/
data class OrderListBean<T>(
var total : Int,
var rows: List<T>
)

View File

@ -1,9 +1,11 @@
import com.dahe.glex.bean.*
import com.dahe.mylibrary.net.CommonResponseBean
import com.dhsd.glowner.BuildConfig
import com.dhsd.glowner.bean.AddressBean
import com.dhsd.glowner.bean.CaptainBean
import com.dhsd.glowner.bean.CarBean
import com.dhsd.glowner.bean.LoginBean
import com.dhsd.glowner.bean.PostAddressBean
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.Body
import retrofit2.http.GET
@ -89,4 +91,16 @@ interface Api {
*/
@GET(BASE_URL+"devApi/business/ft/common/dict/captain/driverAndCar")
fun driverAndCarList(@Query("captainId") captainId:String): Observable<CommonResponseBean<MutableList<CarBean>>>
/**
* 新增货主常用地址
* @param bean PostAddressBean
* @return Observable<CommonResponseBean<Any>>
*/
@POST(BASE_URL+"devApi/business/shipper/common/address")
fun postAddress(@Body bean: PostAddressBean): Observable<CommonResponseBean<Any>>
@GET(BASE_URL+"devApi/business/shipper/common/address/list")
fun getAddressList(): Observable<CommonResponseBean<OrderListBean<AddressBean>>>
}

View File

@ -1,12 +1,12 @@
package com.dhsd.glowner.ui.home.activtiy
package com.dhsd.glowner.ui.address
import android.graphics.Color
import android.os.Bundle
import android.view.View
import android.widget.LinearLayout
import androidx.compose.material3.Switch
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.dahe.gldriver.base.AppConfig
import com.dahe.glex.bean.WayBillBean
import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
@ -15,22 +15,23 @@ import com.dahe.mylibrary.utils.PickerUtils
import com.dhsd.glowner.R
import com.dhsd.glowner.adapter.SendGoodsAdapter
import com.dhsd.glowner.databinding.ActivityAddressEditBinding
import com.github.gzuliyujiang.wheelpicker.contract.OnAddressPickedListener
import com.github.gzuliyujiang.wheelpicker.entity.CityEntity
import com.github.gzuliyujiang.wheelpicker.entity.CountyEntity
import com.github.gzuliyujiang.wheelpicker.entity.ProvinceEntity
import com.dhsd.glowner.utils.OnLimitClickHelper
import com.dhsd.glowner.utils.OnLimitClickListener
/**
* @ClassName AddresEditActivity
* @Author john
* @Date 2024/2/4 10:44
* @Description 选择地址
* @Description 新增装卸货地址或编辑
*/
class AddressEditActivity : BaseActivity<ActivityAddressEditBinding>(), View.OnClickListener {
class AddressEditOrAddActivity : BaseActivity<ActivityAddressEditBinding>(),
OnLimitClickListener {
private var isAdd:Boolean = true
override fun initView(savedInstanceState: Bundle?) {
setStatusBarColor(R.color.white)
setTitleBar("发货地址", true)
setTitleBar("地址信息", true)
isAdd = intent.extras?.getBoolean(AppConfig.IS_ADD,true) == true
var datas = mutableListOf<WayBillBean>(
WayBillBean(),
@ -51,9 +52,12 @@ class AddressEditActivity : BaseActivity<ActivityAddressEditBinding>(), View.OnC
}.submitList(datas)
binding.run {
tvSSQ.setOnClickListener(this@AddressEditActivity)
tvSSQ.setOnClickListener(OnLimitClickHelper(this@AddressEditOrAddActivity))
tvClear.setOnClickListener { etAddressDetail.setText("") }
btnOk.setOnClickListener(OnLimitClickHelper(this@AddressEditOrAddActivity))
}
}
override fun onClick(view: View?) {
@ -65,6 +69,9 @@ class AddressEditActivity : BaseActivity<ActivityAddressEditBinding>(), View.OnC
binding.tvSSQ.text = """${province.name}-${city.name}-${county.name}"""
}
}
R.id.btnOk->{
}
}
}

View File

@ -0,0 +1,104 @@
package com.dhsd.glowner.ui.address
import BaseObserver
import DataManager
import RxHttpCallBack
import android.graphics.Color
import android.os.Bundle
import android.view.View
import android.widget.LinearLayout
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.dahe.gldriver.base.AppConfig
import com.dahe.glex.bean.OrderListBean
import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ConvertUtils
import com.dhsd.glowner.R
import com.dhsd.glowner.adapter.AddressAdapter
import com.dhsd.glowner.bean.AddressBean
import com.dhsd.glowner.databinding.ActivityAddressListBinding
import com.dhsd.glowner.utils.OnLimitClickHelper
import com.dhsd.glowner.utils.OnLimitClickListener
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
/**
* @ClassName AddressList
* @Author john
* @Date 2024/10/29 16:45
* @Description 地址列表
*/
class AddressListActivity : BaseActivity<ActivityAddressListBinding>(),
OnLimitClickListener {
lateinit var adapter: AddressAdapter
override fun initView(savedInstanceState: Bundle?) {
setStatusBarColor(R.color.white)
setTitleBar("地址", true)
binding.run {
adapter = recycler.run {
layoutManager = LinearLayoutManager(mContext, RecyclerView.VERTICAL, false)
addItemDecoration(
RecycleViewDivider(
LinearLayout.VERTICAL,
ConvertUtils.dp2px(12.0f),
Color.TRANSPARENT
)
)
adapter = AddressAdapter()
adapter as AddressAdapter
}.apply {
isStateViewEnable = true
setOnItemClickListener { adapter, view, position ->
// adapter.items.find { it.isSelect }?.isSelect = false
// adapter.getItem(position)?.isSelect = true
notifyDataSetChanged()
}
}
btnOk.setOnClickListener(OnLimitClickHelper(this@AddressListActivity))
}
}
override fun initDate() {
DataManager.getInstance().getAddressList()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext,
object : RxHttpCallBack<OrderListBean<AddressBean>>() {
override fun onSuccess(t: CommonResponseBean<OrderListBean<AddressBean>>) {
super.onSuccess(t)
initList(t.data.rows)
}
}))
}
override fun onClick(view: View?) {
super.onClick(view)
when (view?.id) {
R.id.btnOk -> {
ActivityUtils.startActivity(mContext,AddressEditOrAddActivity::class.java,Bundle().apply {
putBoolean(AppConfig.IS_ADD,true)
})
}
}
}
private fun initList(rows: List<AddressBean>) {
if (rows.isEmpty()) {
adapter.submitList(null)
adapter.setStateViewLayout(mContext, R.layout.empty_view)
} else {
if (mRefreshPage === 1) {
adapter?.submitList(rows)
} else {
adapter?.addAll(rows)
}
}
}
}

View File

@ -1,7 +1,6 @@
package com.dhsd.glowner.ui.home.activtiy
import android.os.Bundle
import android.view.Gravity
import android.view.View
import androidx.recyclerview.widget.GridLayoutManager
import com.dahe.mylibrary.base.BaseActivity
@ -13,7 +12,6 @@ import com.dhsd.glowner.bean.PackTypeBean
import com.dhsd.glowner.databinding.ActivityGoodsInfoBinding
import com.dhsd.glowner.utils.OnLimitClickHelper
import com.dhsd.glowner.utils.OnLimitClickListener
import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener
import com.luck.picture.lib.decoration.GridSpacingItemDecoration
import com.luck.picture.lib.utils.DensityUtil

View File

@ -16,6 +16,7 @@ import com.dahe.mylibrary.utils.ToastUtils
import com.dhsd.glowner.R
import com.dhsd.glowner.adapter.SendGoodsAdapter
import com.dhsd.glowner.databinding.ActivitySendGoodsBinding
import com.dhsd.glowner.ui.address.AddressListActivity
/**
* @ClassName SendGoodsActivity
@ -64,7 +65,7 @@ class SendGoodsActivity : BaseActivity<ActivitySendGoodsBinding>() {
adapter as SendGoodsAdapter
}.run {
addOnItemChildClickListener(R.id.tvSelAddress) { adapter, view, position ->
ActivityUtils.startActivity(mContext, AddressEditActivity::class.java)
ActivityUtils.startActivity(mContext, AddressListActivity::class.java)
}
this
}.submitList(datas)

View File

@ -9,6 +9,7 @@ import com.dahe.mylibrary.utils.ToastUtils
import com.dhsd.glowner.R
import com.dhsd.glowner.adapter.GridItemAdapter
import com.dhsd.glowner.databinding.FragmentMineBinding
import com.dhsd.glowner.ui.mine.activity.SettingActivity
import com.tencent.bugly.crashreport.CrashReport
class MineFragment : BaseFragment<FragmentMineBinding>(), View.OnClickListener {
@ -136,9 +137,18 @@ class MineFragment : BaseFragment<FragmentMineBinding>(), View.OnClickListener {
}
5 -> {
ToastUtils.showToast(mContext, tools[pos].title)
}
6 -> {
}
7 -> {
ActivityUtils.startActivity(mContext, SettingActivity::class.java)
}
}
}

View File

@ -7,17 +7,13 @@ import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import android.view.View
import android.widget.AdapterView.OnItemClickListener
import android.widget.LinearLayout
import androidx.appcompat.app.AppCompatActivity
import androidx.core.widget.addTextChangedListener
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.chad.library.adapter4.BaseQuickAdapter
import com.dahe.gldriver.base.AppConfig
import com.dahe.glex.bean.DispatchBean
import com.dahe.glex.bean.OrderBean
import com.dahe.glex.bean.OrderListBean
import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider

View File

@ -11,7 +11,6 @@ import android.widget.LinearLayout
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.chad.library.adapter4.BaseQuickAdapter
import com.dahe.gldriver.base.AppConfig
import com.dahe.glex.bean.DispatchBean
import com.dahe.mylibrary.base.BaseActivity
@ -21,15 +20,12 @@ import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ConvertUtils
import com.dahe.mylibrary.utils.ToastUtils
import com.dhsd.glowner.R
import com.dhsd.glowner.adapter.DriverCarsAdapter
import com.dhsd.glowner.adapter.popadapter.DriverFleetAdapter
import com.dhsd.glowner.bean.CaptainBean
import com.dhsd.glowner.bean.CarBean
import com.dhsd.glowner.databinding.ActivityChoiceFleetCarBinding
import com.dhsd.glowner.utils.OnLimitClickHelper
import com.dhsd.glowner.utils.OnLimitClickListener
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.core.Scheduler
import io.reactivex.rxjava3.schedulers.Schedulers
/**

View File

@ -3,15 +3,12 @@ package com.dhsd.glowner.ui.mine.activity
import BaseObserver
import DataManager
import RxHttpCallBack
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import android.view.View
import android.widget.LinearLayout
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.chad.library.adapter4.BaseQuickAdapter
import com.dahe.gldriver.base.AppConfig
import com.dahe.glex.bean.DispatchBean
import com.dahe.mylibrary.base.BaseActivity
@ -21,10 +18,7 @@ import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ConvertUtils
import com.dahe.mylibrary.utils.ToastUtils
import com.dhsd.glowner.R
import com.dhsd.glowner.adapter.DriverCarsAdapter
import com.dhsd.glowner.adapter.DriverFleetCarAdapter
import com.dhsd.glowner.adapter.popadapter.DriverFleetAdapter
import com.dhsd.glowner.bean.CaptainBean
import com.dhsd.glowner.bean.CarBean
import com.dhsd.glowner.bean.HomeEvent
import com.dhsd.glowner.databinding.ActivityChoiceFleetCarBinding
@ -32,7 +26,6 @@ import com.dhsd.glowner.ui.HomeActivity
import com.dhsd.glowner.utils.OnLimitClickHelper
import com.dhsd.glowner.utils.OnLimitClickListener
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.core.Scheduler
import io.reactivex.rxjava3.schedulers.Schedulers
import org.greenrobot.eventbus.EventBus

View File

@ -0,0 +1,97 @@
package com.dhsd.glowner.ui.mine.activity
import android.os.Bundle
import android.view.View
import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.AppUtils
import com.dahe.mylibrary.utils.BaseUtils
import com.dhsd.glowner.R
import com.dhsd.glowner.databinding.ActivitySettingBinding
import com.dhsd.glowner.ui.WebActivity
import com.dhsd.glowner.utils.AppVersionUtils
import com.dhsd.glowner.utils.CommonPopUtils
import com.dhsd.glowner.utils.UserUtils
/**
* @ClassName SettingActivity
* @Author john
* @Date 2024/3/27 10:21
* @Description TODO
*/
class SettingActivity : BaseActivity<ActivitySettingBinding>(), View.OnClickListener {
override fun initView(savedInstanceState: Bundle?) {
setStatusBarColor(R.color.white)
setTitleBar("设置", true)
binding.run {
rlOne.setOnClickListener(this@SettingActivity)
rlTwo.setOnClickListener(this@SettingActivity)
llRules.setOnClickListener {
// ActivityUtils.startActivity(mContext, RulesActivity::class.java)
}
llRates.setOnClickListener {
// ActivityUtils.startActivity(mContext, RateManActivity::class.java)
}
llQues.setOnClickListener {
// ActivityUtils.startActivity(mContext, ComProActivity::class.java)
}
llCallMe.setOnClickListener {
BaseUtils.callPhone(this@SettingActivity,"13783631930")
}
llAbout.setOnClickListener {
ActivityUtils.startActivity(mContext, WebActivity::class.java, Bundle().apply {
putString("title", "关于我们")
putString("url", "http://www.dahehuoyun.com/index.html")
})
}
llFeed.setOnClickListener {
ActivityUtils.startActivity(mContext, WebActivity::class.java, Bundle().apply {
putString("title", "意见反馈")
putString("url", "https://support.qq.com/products/335639")
})
}
llUpdate.setOnClickListener {
AppVersionUtils.getInstance().checkVersion(mContext)
}
tvVersion.text = """当前版本V${AppUtils.getAppVersionName()}"""
}
}
override fun initDate() {
}
override fun onClick(view: View?) {
super.onClick(view)
when (view?.id) {
binding.rlOne.id -> {
// if (binding.svTog.isOpened) {
// JPushUPSManager.turnOffPush(mContext) {
// binding.svTog.toggleSwitch(false)
// }
// } else {
// JPushUPSManager.turnOnPush(
// mContext
// ) { binding.svTog.toggleSwitch(true) }
// }
}
binding.rlTwo.id -> {
CommonPopUtils.getInstance()
.showCommCenterPop(mContext, content = "您确定退出好运货主端么?") {
UserUtils.instance.loginOut(mContext)
// SPUtils.instance.removeUserToken(mContext)
// ActivityUtils.startLoginActivity(mContext,LoginActivity::class.java)
// ActivityUtils.finishAllActivities()
}
}
}
}
}

View File

@ -0,0 +1,35 @@
package com.dhsd.glowner.utils
import BaseObserver
import RxHttpCallBack
import android.content.Context
import com.dahe.mylibrary.base.SingletonNoPHolder
import com.dahe.mylibrary.net.CommonResponseBean
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
/**
* @ClassName AppVersionUtils
* @Author john
* @Date 2024/3/26 11:12
* @Description TODO
*/
class AppVersionUtils private constructor() {
companion object : SingletonNoPHolder<AppVersionUtils>(::AppVersionUtils)
fun checkVersion(context: Context) {
// DataManager.getInstance().getLastAppVersion()
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(BaseObserver(context, object : RxHttpCallBack<AppVersion>() {
// override fun onSuccess(t: CommonResponseBean<AppVersion>) {
// super.onSuccess(t)
// if (t.data.versionCode> AppUtils.getAppVersionCode()) {
// CommonPopUtils.getInstance().showUpApp(context,t.data)
// } else {
// ToastUtils.showToast(context, "已是最新版本")
// }
// }
// }))
}
}

View File

@ -42,10 +42,24 @@ class CommonPopUtils private constructor() {
// .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个
.asCustom(PopBottomCar(context, mutableListOf, listener))
.show()
}
fun showCommCenterPop(
context: Context,
title: String = "提示",
content: String,
listener: OnConfirmListener,
) {
XPopup.Builder(context)
.isDestroyOnDismiss(true)
.asConfirm(
title, content,
"取消", "确定",
listener, null, false
)
.show()
}
}

View File

@ -1,11 +1,13 @@
package com.dhsd.glowner.utils
import android.content.Context
import android.content.Intent
import com.dahe.mylibrary.utils.BaseSPUtils
import com.dhsd.glowner.ui.LauncherActivity
class UserUtils private constructor(){
class UserUtils private constructor() {
companion object{
companion object {
val instance = Holder.holder
}
@ -13,14 +15,15 @@ class UserUtils private constructor(){
val holder = UserUtils()
}
fun loginOut(context : Context){
if (null== SPUtils.instance.getUserInfo(context))
return
// PushAgent.getInstance(context).deleteAlias(SPUtils.getUserInfo(context).userInfo.userId,"uid"){ b, s -> }
BaseSPUtils.cleanUserInfo(context)
// val intent = Intent(context, LauncherActivity::class.java)
// intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
// context.startActivity(intent)
fun loginOut(context: Context) {
if (null != SPUtils.instance.getUserInfo(context)) {
// PushAgent.getInstance(context).deleteAlias(SPUtils.getUserInfo(context).userInfo.userId,"uid"){ b, s -> }
BaseSPUtils.cleanUserInfo(context)
}
SPUtils.instance.setUserToken(context, "")
val intent = Intent(context, LauncherActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)
// ToastUtils.showToast(context, "您的账号再异地登录,请重新登录")
}
}

View File

@ -166,6 +166,7 @@
</LinearLayout>
<TextView
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_15"
@ -176,6 +177,7 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_15"

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="@color/color_F3"
android:orientation="vertical">
<include layout="@layout/common_toolbar"></include>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:id="@+id/llBtn"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_70"
android:background="@color/white"
android:gravity="center"
android:paddingLeft="@dimen/dp_15"
android:paddingRight="@dimen/dp_15">
<Button
android:id="@+id/btnOk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_btn"
android:text="新增"
android:textColor="@color/white"
android:textSize="@dimen/sp_17">
</Button>
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,334 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical">
<include layout="@layout/common_toolbar"></include>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:id="@+id/llRules"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="平台规则"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<ImageView
android:layout_width="@dimen/dp_15"
android:layout_height="@dimen/dp_15"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/right_gray" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:layout_alignParentBottom="true"
android:layout_marginLeft="@dimen/dp_16"
android:layout_marginRight="@dimen/dp_16"
android:background="@color/color_c" />
<LinearLayout
android:id="@+id/llRates"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="评价管理"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<ImageView
android:layout_width="@dimen/dp_15"
android:layout_height="@dimen/dp_15"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/right_gray" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:layout_alignParentBottom="true"
android:layout_marginLeft="@dimen/dp_16"
android:layout_marginRight="@dimen/dp_16"
android:background="@color/color_c" />
<LinearLayout
android:id="@+id/llQues"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="常见问题"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<ImageView
android:layout_width="@dimen/dp_15"
android:layout_height="@dimen/dp_15"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/right_gray" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:id="@+id/llCallMe"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="联系我们"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<ImageView
android:layout_width="@dimen/dp_15"
android:layout_height="@dimen/dp_15"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/right_gray" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:layout_alignParentBottom="true"
android:layout_marginLeft="@dimen/dp_16"
android:layout_marginRight="@dimen/dp_16"
android:background="@color/color_c" />
<LinearLayout
android:id="@+id/llAbout"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="关于我们"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<ImageView
android:layout_width="@dimen/dp_15"
android:layout_height="@dimen/dp_15"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/right_gray" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:layout_alignParentBottom="true"
android:layout_marginLeft="@dimen/dp_16"
android:layout_marginRight="@dimen/dp_16"
android:background="@color/color_c" />
<LinearLayout
android:id="@+id/llFeed"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="意见反馈"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<ImageView
android:layout_width="@dimen/dp_15"
android:layout_height="@dimen/dp_15"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/right_gray" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:id="@+id/llUpdate"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="版本更新"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tvVersion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="当前版本" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:layout_alignParentBottom="true"
android:layout_marginLeft="@dimen/dp_16"
android:layout_marginRight="@dimen/dp_16"
android:background="@color/color_c" />
<LinearLayout
android:id="@+id/rlOne"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_66"
android:gravity="center_vertical"
android:paddingLeft="@dimen/dp_16"
android:paddingRight="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="是否开启推送"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<com.dahe.mylibrary.weight.SwitchView
android:id="@+id/svTog"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_30"
app:canEnable="false"
app:isOpened="true" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/dp_15"
android:background="@color/white"
android:orientation="vertical">
<LinearLayout
android:id="@+id/rlTwo"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:gravity="center_vertical"
android:paddingLeft="@dimen/dp_16"
android:paddingRight="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="退出"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_20"
android:gravity="center"
android:text="ICP备案号:豫ICP备09025418号-24A" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>

View File

@ -0,0 +1,65 @@
<?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:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_6"
android:background="@drawable/shape_gray_8"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="@dimen/dp_11">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/tvAddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="2"
android:text="河南省郑州市金水区农业路经 三路东南角银丰商务A座"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:maxLines="2"
android:text="刘静 15424412450"
android:textColor="@color/color_9"
android:textSize="@dimen/sp_14" />
</LinearLayout>
<View
android:layout_width="@dimen/dp_1"
android:layout_height="@dimen/dp_42"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:background="@color/color_9" />
<TextView
android:id="@+id/tvEdit"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:paddingLeft="@dimen/dp_6"
android:paddingRight="@dimen/dp_6"
android:text="编辑"
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
</LinearLayout>
</LinearLayout>