继承basebinding类型的加上注解,解决崩溃问题
This commit is contained in:
@@ -20,18 +20,17 @@ import com.yizhuan.erban.skill.event.SkillEvent
|
||||
import com.yizhuan.erban.skill.repository.SkillDataManager
|
||||
import com.yizhuan.erban.skill.repository.SkillModel
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
import io.reactivex.functions.Consumer
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
@ActLayoutRes(R.layout.activity_skill_home)
|
||||
class ActivitySkillHome : BaseBindingActivity<ActivitySkillHomeBinding>() {
|
||||
private lateinit var adapter: MineSkillCardAdapter
|
||||
private var addDialog: AddSkillCardDialog? = null
|
||||
private lateinit var skillTypeList: List<SkillTypeEntity>
|
||||
private var skillTypeList: List<SkillTypeEntity>? = null
|
||||
override fun init() {
|
||||
initTitleBar("技能卡")
|
||||
EventBus.getDefault().register(this)
|
||||
@@ -46,50 +45,55 @@ class ActivitySkillHome : BaseBindingActivity<ActivitySkillHomeBinding>() {
|
||||
0 -> showAddableSkillDialog()
|
||||
else -> {
|
||||
val item = adapter.getItem(position) as SkillPropertyEntity
|
||||
// EditSkillActivity
|
||||
}
|
||||
}
|
||||
}
|
||||
mBinding.refreshLayout.setOnRefreshListener {
|
||||
loadUserSkillList()
|
||||
}
|
||||
CoroutineScope(Dispatchers.Main).launch {
|
||||
loadSkillTypeList()
|
||||
loadUserSkillList()
|
||||
}
|
||||
SkillModel.instance.getSkillTypeList()
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(Consumer {
|
||||
skillTypeList = it
|
||||
loadUserSkillList()
|
||||
},
|
||||
Consumer { th ->
|
||||
th.printStackTrace()
|
||||
skillTypeList = ArrayList(0)
|
||||
loadUserSkillList()
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
private fun loadUserSkillList() {
|
||||
SkillModel.instance.getUserAllSkillCardDetail()
|
||||
.compose(bindToLifecycle())
|
||||
.doOnSubscribe { dialogManager.showProgressDialog(this) }
|
||||
.subscribe(
|
||||
Consumer {
|
||||
if (mBinding.refreshLayout.isRefreshing) {
|
||||
mBinding.refreshLayout.isRefreshing = false
|
||||
}
|
||||
adapter.setHeaderAndEmpty(true)
|
||||
//这里没有做加载功能
|
||||
adapter.setNewData(it)
|
||||
if (it.isEmpty()) {
|
||||
adapter.setHeaderAndEmpty(false)
|
||||
adapter.emptyView = createEmptyView()
|
||||
}
|
||||
dialogManager.dismissDialog()
|
||||
},
|
||||
Consumer { th ->
|
||||
th.printStackTrace()
|
||||
mBinding.refreshLayout.isRefreshing = false
|
||||
adapter.setHeaderAndEmpty(false)
|
||||
adapter.emptyView = createEmptyView()
|
||||
dialogManager.dismissDialog()
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
private fun loadSkillTypeList() {
|
||||
SkillModel.instance.getSkillTypeList()
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(Consumer { skillTypeList = it },
|
||||
Consumer { th ->
|
||||
th.printStackTrace()
|
||||
skillTypeList = ArrayList(0)
|
||||
})
|
||||
}
|
||||
|
||||
private fun createEmptyView(): View {
|
||||
val rootHeight = UIUtil.dip2px(this, 180.0)
|
||||
@@ -120,7 +124,7 @@ class ActivitySkillHome : BaseBindingActivity<ActivitySkillHomeBinding>() {
|
||||
|
||||
private fun showAddableSkillDialog() {
|
||||
if (addDialog == null) {
|
||||
addDialog = AddSkillCardDialog(context, skillTypeList) {
|
||||
addDialog = AddSkillCardDialog(context, skillTypeList!!) {
|
||||
AddSkillActivity.start(this, it.cardId)
|
||||
}
|
||||
}
|
||||
|
@@ -13,8 +13,10 @@ import com.yizhuan.erban.skill.entity.SkillRecordEntity
|
||||
import com.yizhuan.erban.skill.repository.SkillDataManager
|
||||
import com.yizhuan.erban.skill.repository.SkillModel
|
||||
import com.yizhuan.erban.skill.widget.SelectionItem
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
import io.reactivex.functions.Consumer
|
||||
|
||||
@ActLayoutRes(R.layout.activity_skill_edit)
|
||||
class AddSkillActivity : BaseBindingActivity<ActivitySkillEditBinding>() {
|
||||
private lateinit var delegate: ActivitySkillEditDelegate
|
||||
override fun init() {
|
||||
|
@@ -1,5 +1,7 @@
|
||||
package com.yizhuan.erban.skill.activity
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.view.View
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.base.BaseBindingActivity
|
||||
@@ -7,15 +9,18 @@ import com.yizhuan.erban.databinding.ActivitySkillEditBinding
|
||||
import com.yizhuan.erban.skill.event.SkillEvent
|
||||
import com.yizhuan.erban.skill.repository.SkillModel
|
||||
import com.yizhuan.erban.ui.widget.dialog.CommonTipDialog
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
import io.reactivex.functions.Consumer
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
@ActLayoutRes(R.layout.activity_skill_edit)
|
||||
class EditSkillActivity : BaseBindingActivity<ActivitySkillEditBinding>() {
|
||||
private lateinit var mDelegate: ActivitySkillEditDelegate
|
||||
private lateinit var deleteTipDialog: CommonTipDialog
|
||||
override fun init() {
|
||||
mBinding.setClick { this }
|
||||
mDelegate = ActivitySkillEditDelegate(this)
|
||||
|
||||
}
|
||||
|
||||
override fun onClick(v: View) {
|
||||
@@ -59,4 +64,13 @@ class EditSkillActivity : BaseBindingActivity<ActivitySkillEditBinding>() {
|
||||
toast("删除失败")
|
||||
})
|
||||
}
|
||||
|
||||
companion object{
|
||||
private const val ITEM_ID = "item_id"
|
||||
fun start(context:Context,id:Int){
|
||||
val intent = Intent(context,EditSkillActivity::class.java)
|
||||
intent.putExtra(ITEM_ID,id)
|
||||
context.startActivity(intent)
|
||||
}
|
||||
}
|
||||
}
|
@@ -13,7 +13,7 @@ class MineSkillListDecoration(context: Context, topSpaceDp: Int, bottomSpaceDp:
|
||||
|
||||
init {
|
||||
topSpace = UIUtil.dip2px(context, topSpaceDp.toDouble())
|
||||
bottomSpace = UIUtil.dip2px(context, bottomSpace.toDouble())
|
||||
bottomSpace = UIUtil.dip2px(context, bottomSpaceDp.toDouble())
|
||||
}
|
||||
|
||||
override fun getItemOffsets(
|
||||
|
@@ -26,5 +26,8 @@ class SkillGridDecoration(context: Context, marginDp: Int, spaceDp: Int) :
|
||||
outRect.left = spaceDp / 2
|
||||
outRect.right = marginDp
|
||||
}
|
||||
if(position/2>0&&position<parent.childCount-2){
|
||||
outRect.bottom=spaceDp
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,14 +1,19 @@
|
||||
package com.yizhuan.erban.skill.dialog
|
||||
|
||||
import android.content.Context
|
||||
import android.view.Gravity
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.databinding.DialogAddSkillItemBinding
|
||||
import com.yizhuan.erban.skill.adapter.AddSkillCardAdapter
|
||||
import com.yizhuan.erban.skill.decoration.MineSkillListDecoration
|
||||
import com.yizhuan.erban.skill.decoration.SkillGridDecoration
|
||||
import com.yizhuan.erban.skill.entity.SkillTypeEntity
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.BaseBindingDialog
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
|
||||
@ActLayoutRes(R.layout.dialog_add_skill_item)
|
||||
class AddSkillCardDialog(
|
||||
context: Context,
|
||||
data: List<SkillTypeEntity>,
|
||||
@@ -20,13 +25,15 @@ class AddSkillCardDialog(
|
||||
init {
|
||||
width = UIUtil.getScreenWidth(context)
|
||||
height = UIUtil.dip2px(context, 366.0)
|
||||
gravity = Gravity.BOTTOM
|
||||
this.data = data
|
||||
}
|
||||
|
||||
private lateinit var adapter: AddSkillCardAdapter
|
||||
override fun init() {
|
||||
binding.recyclerView.layoutManager = GridLayoutManager(context, 2)
|
||||
binding.recyclerView.addItemDecoration(SkillGridDecoration(context, 15, 26))
|
||||
binding.recyclerView.addItemDecoration(MineSkillListDecoration(context, 15, 26))
|
||||
adapter = AddSkillCardAdapter()
|
||||
adapter.setOnItemClickListener { _, _, position ->
|
||||
callback(adapter.getItem(position)!!)//能到这里肯定是点击了某个item ,肯定获取的是有效值
|
||||
closeDialog()
|
||||
|
@@ -3,13 +3,16 @@ package com.yizhuan.erban.skill.dialog
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.databinding.DialogAddSkillItemBinding
|
||||
import com.yizhuan.erban.skill.adapter.SkillSelectionAdapter
|
||||
import com.yizhuan.erban.skill.decoration.SkillGridDecoration
|
||||
import com.yizhuan.erban.skill.entity.PropDictVosEntity
|
||||
import com.yizhuan.erban.skill.entity.PropsEntity
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.BaseBindingDialog
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
|
||||
@ActLayoutRes(R.layout.dialog_add_skill_item)
|
||||
class SkillSelectionDialog(
|
||||
context: Context, var item: PropsEntity?,
|
||||
val callback: (value: PropDictVosEntity) -> Unit
|
||||
|
@@ -7,10 +7,7 @@ import com.yizhuan.erban.skill.entity.SkillTypeEntity
|
||||
import com.yizhuan.xchat_android_core.bean.response.ServiceResult
|
||||
import io.reactivex.Single
|
||||
import okhttp3.RequestBody
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Query
|
||||
import retrofit2.http.*
|
||||
|
||||
interface Api {
|
||||
@GET("/skillCard/getUserAllSkillCardDetail")
|
||||
@@ -19,7 +16,7 @@ interface Api {
|
||||
@GET("/skillCard/getTypeList")
|
||||
fun getSkillTypeList(): Single<ServiceResult<List<SkillTypeEntity>>>
|
||||
|
||||
@POST("/skillCard/getCardInfoById")
|
||||
@GET("/skillCard/getCardInfoById")
|
||||
fun getCardInfoById(@Query("cardId") cardId: String): Single<ServiceResult<SkillPropertyEntity>>
|
||||
|
||||
@POST("/skillCard/saveOrUpdate")
|
||||
|
@@ -30,11 +30,12 @@ class SkillCardView(
|
||||
constructor(context: Context) : this(context, null)
|
||||
constructor(context: Context, @Nullable attrs: AttributeSet?) : this(context, attrs, 0)
|
||||
|
||||
private lateinit var itemList: ArrayList<SkillItem>
|
||||
private var itemList: ArrayList<SkillItem>
|
||||
private var rootEntity: SkillRecordEntity? = null
|
||||
|
||||
init {
|
||||
orientation = VERTICAL
|
||||
itemList = ArrayList()
|
||||
}
|
||||
|
||||
//标题
|
||||
|
@@ -10,7 +10,9 @@ import com.yizhuan.erban.databinding.ActivityScheduleManageBinding
|
||||
import com.yizhuan.erban.flutter.RouterConstants
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity
|
||||
import com.yizhuan.xchat_android_core.UriProvider
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
|
||||
@ActLayoutRes(R.layout.activity_schedule_manage)
|
||||
class ScheduleManageActivity : BaseBindingActivity<ActivityScheduleManageBinding>() {
|
||||
override fun init() {
|
||||
initTitleBar("赛程管理")
|
||||
|
@@ -2,9 +2,8 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="160dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@drawable/bg_f1f1fa_8"
|
||||
app:layout_constraintDimensionRatio="h,48:160">
|
||||
android:layout_height="48dp"
|
||||
android:background="@drawable/bg_f1f1fa_8">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_icon"
|
||||
|
@@ -25,6 +25,7 @@ public abstract class BaseBindingDialog<T extends ViewDataBinding> extends AppCo
|
||||
|
||||
protected int width, height;
|
||||
protected Context context;
|
||||
protected int gravity;
|
||||
|
||||
public BaseBindingDialog(Context context) {
|
||||
this(context, 0);
|
||||
@@ -35,6 +36,7 @@ public abstract class BaseBindingDialog<T extends ViewDataBinding> extends AppCo
|
||||
this.context = context;
|
||||
width = ScreenUtil.getDialogWidth();
|
||||
height = WindowManager.LayoutParams.WRAP_CONTENT;
|
||||
gravity = Gravity.CENTER;
|
||||
}
|
||||
|
||||
protected T binding;
|
||||
@@ -49,7 +51,7 @@ public abstract class BaseBindingDialog<T extends ViewDataBinding> extends AppCo
|
||||
windowParams.width = width;
|
||||
windowParams.height = height;
|
||||
windowParams.dimAmount = 0.5f;
|
||||
windowParams.gravity = Gravity.CENTER;
|
||||
windowParams.gravity = gravity;
|
||||
windowParams.x = 0;
|
||||
windowParams.y = 0;
|
||||
// window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
|
||||
|
Reference in New Issue
Block a user