|
@@ -1,22 +1,23 @@
|
|
|
package com.quansu.heifengwuliu.fragment
|
|
|
|
|
|
-import android.content.Context
|
|
|
+import android.graphics.Color
|
|
|
+import android.graphics.Typeface
|
|
|
import android.os.Bundle
|
|
|
import android.view.LayoutInflater
|
|
|
import android.view.ViewGroup
|
|
|
-import android.view.animation.AccelerateInterpolator
|
|
|
-import android.view.animation.DecelerateInterpolator
|
|
|
+import androidx.fragment.app.Fragment
|
|
|
import com.hwangjr.rxbus.annotation.Subscribe
|
|
|
import com.hwangjr.rxbus.annotation.Tag
|
|
|
-import com.quansu.heifengwuliu.R
|
|
|
+import com.qmuiteam.qmui.util.QMUIDisplayHelper
|
|
|
+import com.qmuiteam.qmui.widget.tab.QMUITab
|
|
|
+import com.qmuiteam.qmui.widget.tab.QMUITabIndicator
|
|
|
+import com.qmuiteam.qmui.widget.tab.QMUITabSegment
|
|
|
import com.quansu.heifengwuliu.activity.AddressActivity
|
|
|
-import com.quansu.heifengwuliu.adapter.FragmentAdapter
|
|
|
+import com.quansu.heifengwuliu.adapter.BaseFragmentPagerAdapter
|
|
|
import com.quansu.heifengwuliu.base.MBFragment
|
|
|
import com.quansu.heifengwuliu.config.ConfigRx
|
|
|
import com.quansu.heifengwuliu.config.MIntentAction
|
|
|
import com.quansu.heifengwuliu.databinding.FragmentOwnersingleBinding
|
|
|
-import com.quansu.heifengwuliu.utils.AList
|
|
|
-import com.quansu.heifengwuliu.utils.TAB
|
|
|
import com.yanzhenjie.permission.AndPermission
|
|
|
import com.yanzhenjie.permission.runtime.Permission
|
|
|
import com.ysnows.base.base.BRepository
|
|
@@ -26,44 +27,160 @@ import com.ysnows.base.model.PositionBean
|
|
|
import com.ysnows.base.route.IGaode
|
|
|
import com.ysnows.base.utils.B
|
|
|
import com.ysnows.base.utils.UiSwitch
|
|
|
-import net.lucode.hackware.magicindicator.ViewPagerHelper
|
|
|
-import net.lucode.hackware.magicindicator.buildins.UIUtil
|
|
|
-import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator
|
|
|
-import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter
|
|
|
-import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator
|
|
|
-import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView
|
|
|
-import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator
|
|
|
-import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView
|
|
|
|
|
|
/**
|
|
|
* 一装一卸
|
|
|
*Created by shihuiyun
|
|
|
*on 2020/9/11
|
|
|
*/
|
|
|
-class OwnerSingleFragment : MBFragment<BViewModel<BRepository>, FragmentOwnersingleBinding>(){
|
|
|
- var cats= emptyArray<String>()
|
|
|
+class OwnerSingleFragment : MBFragment<BViewModel<BRepository>, FragmentOwnersingleBinding>() {
|
|
|
+ var cats = emptyArray<String>()
|
|
|
+ private var type = 1
|
|
|
+
|
|
|
private var outtabs = 0
|
|
|
private var selectViewpage = 0
|
|
|
- private var type=1
|
|
|
-
|
|
|
|
|
|
override fun init(savedInstanceState: Bundle?) {
|
|
|
super.init(savedInstanceState)
|
|
|
- setIndicator()
|
|
|
- binding.viewPager.offscreenPageLimit = 0
|
|
|
- initViewPager()
|
|
|
+
|
|
|
+ initTab()
|
|
|
initData()
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun initTab() {
|
|
|
+
|
|
|
+ cats = arrayOf("1", "2", "3", "4", "5", "6", "11", "23", "18", "30", "33", "100", "101", "1003")
|
|
|
+
|
|
|
+ //设置viewpager
|
|
|
+ val fragments = ArrayList<Fragment>()
|
|
|
+ for (cat in cats) {
|
|
|
+
|
|
|
+ var ownerImgFragment = OwnerImgFragment()
|
|
|
+ ownerImgFragment.arguments = B().putString("img", "12233").ok()
|
|
|
+ fragments.add(ownerImgFragment)
|
|
|
+ }
|
|
|
+ val adapter = BaseFragmentPagerAdapter(childFragmentManager, fragments)
|
|
|
+ binding.qmViewPager.adapter = adapter
|
|
|
+
|
|
|
+ //设置tab
|
|
|
+ binding.tabs.setIndicator(QMUITabIndicator(QMUIDisplayHelper.dp2px(context(), 2), false, true))
|
|
|
+ val space: Int = QMUIDisplayHelper.dp2px(context, 16)
|
|
|
+ binding.tabs.setPadding(space, 0, space, 0)
|
|
|
+ binding.tabs.mode = QMUITabSegment.MODE_SCROLLABLE
|
|
|
+// val space: Int = QMUIDisplayHelper.dp2px(context, 16)
|
|
|
+// binding.tabs.mode = QMUITabSegment.MODE_SCROLLABLE //MODE_SCROLLABLE 自适应宽度+滚动 MODE_FIXED 均分
|
|
|
+// binding.tabs.setItemSpaceInScrollMode(space)
|
|
|
+// binding.tabs.setupWithViewPager(binding.qmViewPager, false)
|
|
|
+// binding.tabs.setPadding(space, 0, space, 0)
|
|
|
+//
|
|
|
+
|
|
|
+ val builder = binding.tabs.tabBuilder()
|
|
|
+ builder
|
|
|
+ .skinChangeWithTintColor(false)
|
|
|
+ .setSelectColor(Color.parseColor("#2E4E71"))
|
|
|
+ .setNormalColor(Color.parseColor("#666666"))
|
|
|
+ .setTypeface(Typeface.DEFAULT_BOLD, Typeface.DEFAULT)
|
|
|
+ .setDynamicChangeIconColor(false)
|
|
|
+
|
|
|
+ val tabs = ArrayList<QMUITab>()
|
|
|
+ for (cat in cats) {
|
|
|
+ val item = builder
|
|
|
+ .setText(cat)
|
|
|
+ .build(context())
|
|
|
+
|
|
|
+ tabs.add(item)
|
|
|
+ }
|
|
|
+ tabs.forEach {
|
|
|
+ binding.tabs.addTab(it)
|
|
|
+ }
|
|
|
+ binding.tabs.addOnTabSelectedListener(object : QMUITabSegment.OnTabSelectedListener {
|
|
|
+ //mTabSegment选项被选中的监听
|
|
|
+ /**
|
|
|
+ * 当某个 Tab 被选中时会触发
|
|
|
+ *
|
|
|
+ * @param index 被选中的 Tab 下标
|
|
|
+ */
|
|
|
+ override fun onTabSelected(index: Int) {
|
|
|
+ outtabs=index
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 当某个 Tab 被取消选中时会触发
|
|
|
+ *
|
|
|
+ * @param index 被取消选中的 Tab 下标
|
|
|
+ */
|
|
|
+ override fun onTabUnselected(index: Int) {}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 当某个 Tab 处于被选中状态下再次被点击时会触发
|
|
|
+ *
|
|
|
+ * @param index 被再次点击的 Tab 下标
|
|
|
+ */
|
|
|
+ override fun onTabReselected(index: Int) {
|
|
|
+ outtabs=index
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 当某个 Tab 被双击时会触发
|
|
|
+ *
|
|
|
+ * @param index 被双击的 Tab 下标
|
|
|
+ */
|
|
|
+ override fun onDoubleTap(index: Int) {
|
|
|
+ outtabs=index
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ binding.tabs.setupWithViewPager(binding.qmViewPager, false)
|
|
|
+
|
|
|
+
|
|
|
+ binding.imgNext.setOnClickListener {
|
|
|
+
|
|
|
+
|
|
|
+ selectViewpage = binding.qmViewPager.currentItem
|
|
|
+ if (outtabs != 0) {
|
|
|
+ if (selectViewpage < outtabs) {
|
|
|
+ // binding.tabs.selectTab(selectViewpage + 1)
|
|
|
+ binding.qmViewPager.currentItem = selectViewpage + 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //向右
|
|
|
+ binding.imgDown.setOnClickListener {
|
|
|
+ toast("222")
|
|
|
+
|
|
|
+ selectViewpage = binding.qmViewPager.currentItem
|
|
|
+ if (outtabs != 0) {
|
|
|
+ if (selectViewpage < outtabs) {
|
|
|
+ // binding.tabs.selectTab(selectViewpage + 1)
|
|
|
+ binding.qmViewPager.currentItem = selectViewpage + 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //向左
|
|
|
+ binding.imgUp.setOnClickListener {
|
|
|
+ toast("111")
|
|
|
+ selectViewpage = binding.qmViewPager.currentItem
|
|
|
+ if (outtabs != 0) {
|
|
|
+ if (selectViewpage < outtabs) {
|
|
|
+ // binding.tabs.selectTab(selectViewpage - 1)
|
|
|
+ binding.qmViewPager.currentItem = selectViewpage - 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
private fun initData() {
|
|
|
|
|
|
//卸货信息
|
|
|
- binding.viewEnter.tvCity.setHint("请选择卸货地址")
|
|
|
- binding.viewEnter.llChoseMap.setOnClickListener {
|
|
|
+ binding.viewEnter.tvCity.setHint("请选择卸货地址")
|
|
|
+ binding.viewEnter.llChoseMap.setOnClickListener {
|
|
|
//地图选点
|
|
|
- type=2
|
|
|
- choseMap()
|
|
|
+ type = 2
|
|
|
+ choseMap()
|
|
|
}
|
|
|
|
|
|
|
|
@@ -84,11 +201,10 @@ class OwnerSingleFragment : MBFragment<BViewModel<BRepository>, FragmentOwnersin
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|
|
|
- private fun choseMap(){
|
|
|
+ private fun choseMap() {
|
|
|
|
|
|
AndPermission.with(repository().context)
|
|
|
.runtime()
|
|
@@ -110,87 +226,9 @@ class OwnerSingleFragment : MBFragment<BViewModel<BRepository>, FragmentOwnersin
|
|
|
|
|
|
}
|
|
|
|
|
|
- private fun initViewPager() {
|
|
|
- val tabs: AList<TAB> = AList()
|
|
|
- for (cat in cats) {
|
|
|
-
|
|
|
- var ownerImgFragment=OwnerImgFragment();
|
|
|
-
|
|
|
- tabs.add(TAB(cat, ownerImgFragment, B.with().putString("img","12344").ok()))
|
|
|
-
|
|
|
- }
|
|
|
- outtabs = tabs.ok().size- 1
|
|
|
- val fragmentAdapter = FragmentAdapter(childFragmentManager, tabs.ok())
|
|
|
- binding.viewPager.adapter = fragmentAdapter
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- private fun setIndicator() {
|
|
|
- cats=arrayOf("1","2","3","4","5","6","11","23","18","30","33","100","101","1003")
|
|
|
-
|
|
|
- val commonNavigator = CommonNavigator(context)
|
|
|
- commonNavigator.adapter = object : CommonNavigatorAdapter() {
|
|
|
- override fun getCount(): Int {
|
|
|
- return if (cats == null) 0 else cats.size
|
|
|
- }
|
|
|
-
|
|
|
- override fun getTitleView(context: Context, index: Int): IPagerTitleView {
|
|
|
- val colorTransitionPagerTitleView = ColorTransitionPagerTitleView(context)
|
|
|
- colorTransitionPagerTitleView.normalColor = context.resources.getColor(R.color.tv_subtitle)
|
|
|
- colorTransitionPagerTitleView.selectedColor = context.resources.getColor(R.color.tv_title)
|
|
|
- colorTransitionPagerTitleView.text = cats.get(index)
|
|
|
- colorTransitionPagerTitleView.setOnClickListener { binding.viewPager.setCurrentItem(index) }
|
|
|
- return colorTransitionPagerTitleView
|
|
|
- }
|
|
|
-
|
|
|
- override fun getIndicator(context: Context): IPagerIndicator {
|
|
|
- val indicator = LinePagerIndicator(context)
|
|
|
- indicator.mode = LinePagerIndicator.MODE_EXACTLY
|
|
|
- indicator.lineHeight = UIUtil.dip2px(context, 3.0).toFloat()
|
|
|
- indicator.lineWidth = UIUtil.dip2px(context, 40.0).toFloat()
|
|
|
- indicator.roundRadius = UIUtil.dip2px(context, 2.0).toFloat()
|
|
|
- indicator.startInterpolator = AccelerateInterpolator()
|
|
|
- indicator.endInterpolator = DecelerateInterpolator(2.0f)
|
|
|
- indicator.setColors(context.resources.getColor(R.color.bg_button_red))
|
|
|
- return indicator
|
|
|
- }
|
|
|
- }
|
|
|
- binding.slIndicator.navigator = commonNavigator
|
|
|
-
|
|
|
- ViewPagerHelper.bind( binding.slIndicator, binding.viewPager)
|
|
|
-
|
|
|
- binding.imgNext.setOnClickListener{
|
|
|
- selectViewpage = binding.viewPager.getCurrentItem()
|
|
|
- if (outtabs != 0) {
|
|
|
- if (selectViewpage < outtabs) {
|
|
|
- binding.viewPager.setCurrentItem(selectViewpage + 1)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //向右
|
|
|
- binding.imgDown.setOnClickListener {
|
|
|
- selectViewpage = binding.viewPager.getCurrentItem()
|
|
|
- if (outtabs != 0) {
|
|
|
- if (selectViewpage < outtabs) {
|
|
|
- binding.viewPager.setCurrentItem(selectViewpage + 1)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //向左
|
|
|
- binding.imgUp.setOnClickListener {
|
|
|
- selectViewpage = binding.viewPager.getCurrentItem()
|
|
|
- if (outtabs != 0) {
|
|
|
- if (selectViewpage < outtabs) {
|
|
|
- binding.viewPager.setCurrentItem(selectViewpage -1)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
|
|
|
override fun binding(inflater: LayoutInflater, container: ViewGroup?): FragmentOwnersingleBinding {
|
|
|
- return FragmentOwnersingleBinding.inflate(layoutInflater)
|
|
|
+ return FragmentOwnersingleBinding.inflate(layoutInflater)
|
|
|
}
|
|
|
|
|
|
override fun title(): String? {
|
|
@@ -204,12 +242,19 @@ class OwnerSingleFragment : MBFragment<BViewModel<BRepository>, FragmentOwnersin
|
|
|
@Subscribe(tags = [Tag(ConfigRx.ADD_POSITION)])
|
|
|
fun getPosition(bean: PositionBean) {
|
|
|
|
|
|
- var provincename=bean.provincename
|
|
|
- var latitude=bean.latitude
|
|
|
- var longitude=bean.longitude
|
|
|
- if(type==2) binding.viewEnter.etDetailedAddress.setText(bean.position) else binding.viewOut.etDetailedAddress.setText(bean.position)
|
|
|
-
|
|
|
+ var provincename = bean.provincename
|
|
|
+ var latitude = bean.latitude
|
|
|
+ var longitude = bean.longitude
|
|
|
+ if (type == 2) {
|
|
|
+ binding.viewEnter.etDetailedAddress.setText(bean.position)
|
|
|
+ binding.viewEnter.tvCity.text = bean.provincename + bean.cityname + bean.areaname
|
|
|
+ } else {
|
|
|
+ binding.viewOut.etDetailedAddress.setText(bean.position)
|
|
|
+ binding.viewOut.tvCity.text = bean.provincename + bean.cityname + bean.areaname
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|