Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
YDL-Component-Medical
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨凯
YDL-Component-Medical
Commits
6328d9be
Commit
6328d9be
authored
Aug 16, 2022
by
霍志良
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:金刚位剩余功能困扰页面开发
parent
2a4f7cd1
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
780 additions
and
26 deletions
+780
-26
ExpertSearchFragment.kt
m-consultant/src/main/java/com/yidianling/consultant/ExpertSearchFragment.kt
+20
-2
CategoryDetailAdapter.kt
m-consultant/src/main/java/com/yidianling/consultant/adapter/CategoryDetailAdapter.kt
+98
-0
CategoryDetailTextAdapter.kt
m-consultant/src/main/java/com/yidianling/consultant/adapter/CategoryDetailTextAdapter.kt
+113
-0
EightCategoryAdapter.kt
m-consultant/src/main/java/com/yidianling/consultant/adapter/EightCategoryAdapter.kt
+67
-0
EightCategoryBean.kt
m-consultant/src/main/java/com/yidianling/consultant/model/bean/EightCategoryBean.kt
+9
-0
ConsultCategoryFragment.kt
m-consultant/src/main/java/com/yidianling/consultant/ui/view/ConsultCategoryFragment.kt
+0
-18
EightCategoryPopupWindow.kt
m-consultant/src/main/java/com/yidianling/consultant/ui/view/EightCategoryPopupWindow.kt
+83
-0
EightCategoryView.kt
m-consultant/src/main/java/com/yidianling/consultant/ui/view/topView/EightCategoryView.kt
+207
-0
consult_collapse_arrow.png
m-consultant/src/main/res/drawable-xxhdpi/consult_collapse_arrow.png
+0
-0
consult_hide_arrow.png
m-consultant/src/main/res/drawable-xxhdpi/consult_hide_arrow.png
+0
-0
consultant_layout_category_view.xml
m-consultant/src/main/res/layout/consultant_layout_category_view.xml
+52
-6
consultant_ui_eight_category_popup_window.xml
m-consultant/src/main/res/layout/consultant_ui_eight_category_popup_window.xml
+14
-0
eight_category_detail_item_item.xml
m-consultant/src/main/res/layout/eight_category_detail_item_item.xml
+21
-0
eight_category_detail_list_item.xml
m-consultant/src/main/res/layout/eight_category_detail_list_item.xml
+57
-0
eight_category_list_item.xml
m-consultant/src/main/res/layout/eight_category_list_item.xml
+39
-0
No files found.
m-consultant/src/main/java/com/yidianling/consultant/ExpertSearchFragment.kt
View file @
6328d9be
...
...
@@ -96,7 +96,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
private
var
locationRegionItem
:
RegionItem
?
=
null
private
var
locationList
:
ArrayList
<
SubItem
>?
=
arrayListOf
()
private
var
locationHistoryList
:
ArrayList
<
RegionItem
>?
=
arrayListOf
()
private
lateinit
var
eightcategoryPopup
:
EightCategoryPopupWindow
override
fun
layoutResId
():
Int
{
return
R
.
layout
.
consultant_activity_expert_search_list
}
...
...
@@ -908,7 +908,8 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
hideSoftInput
()
appbar_layout
.
setExpanded
(
false
)
appbar_layout
.
postDelayed
({
showSubjectPopupWindow
()
// showSubjectPopupWindow()
showeightCategoryPopupWindow
()
},
300
)
}
...
...
@@ -1518,10 +1519,27 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
}
/**
* 显示八大类弹窗
*/
private
fun
showeightCategoryPopupWindow
()
{
eightcategoryPopup
=
EightCategoryPopupWindow
(
mActivity
,
allFilter
)
eightcategoryPopup
.
setListener
(
this
)
eightcategoryPopup
.
setOnDismissListener
{
viewDim
.
visibility
=
View
.
INVISIBLE
showConsultAssistantDialog
()
}
hideConsultAssistantDialog
()
eightcategoryPopup
.
showAsDropDown
(
viewSep2
)
updateFilterTextViewStatus
(
tvSubject
,
FILTER_STATUS_OPEN
)
viewDim
.
visibility
=
View
.
VISIBLE
}
/**
* 主题选择确认回调
*
*/
override
fun
onCategoriesSelected
(
signLit
:
ArrayList
<
String
>)
{
eightcategoryPopup
.
dismiss
()
if
(
signLit
.
isNotEmpty
())
{
val
sign1
=
signLit
.
joinToString
(
","
)
{
it
}
ActionCountUtils
.
baiDuCountSign3
(
...
...
m-consultant/src/main/java/com/yidianling/consultant/adapter/CategoryDetailAdapter.kt
0 → 100644
View file @
6328d9be
package
com.yidianling.consultant.adapter
import
android.annotation.SuppressLint
import
android.content.Context
import
androidx.recyclerview.widget.RecyclerView
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
android.widget.TextView
import
androidx.recyclerview.widget.GridLayoutManager
import
androidx.recyclerview.widget.LinearLayoutManager
import
com.yidianling.consultant.R
import
com.yidianling.consultant.model.bean.ChildrenBean
import
com.yidianling.consultant.model.bean.EightCategoryBean
import
kotlinx.android.synthetic.main.consultant_layout_category_view.*
import
kotlinx.android.synthetic.main.eight_category_detail_list_item.view.*
import
kotlinx.android.synthetic.main.eight_category_list_item.view.*
/**
* Created by zqk on 17-9-20.
*/
class
CategoryDetailAdapter
(
private
val
context
:
Context
,
private
val
categoryDetailList
:
MutableList
<
MutableList
<
ChildrenBean
>>,
private
val
categoryNamelList
:
MutableList
<
EightCategoryBean
>,
)
:
RecyclerView
.
Adapter
<
CategoryDetailAdapter
.
ViewHolder
>()
{
lateinit
var
outAdapterClicklistener
:
OutAdapterClicklistener
override
fun
getItemCount
():
Int
=
categoryNamelList
.
size
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
ViewHolder
{
val
itemView
=
LayoutInflater
.
from
(
context
)
.
inflate
(
R
.
layout
.
eight_category_detail_list_item
,
parent
,
false
)
return
ViewHolder
(
itemView
)
}
override
fun
onBindViewHolder
(
holder
:
ViewHolder
,
@SuppressLint
(
"RecyclerView"
)
position
:
Int
)
{
holder
.
category_name
.
text
=
categoryNamelList
[
position
].
string
val
eightCategoryAdapter
=
CategoryDetailTextAdapter
(
context
,
categoryDetailList
[
position
])
eightCategoryAdapter
.
setOnClick
(
object
:
CategoryDetailTextAdapter
.
TextAdapterOnclickListener
{
override
fun
textOnClick
(
textPosition
:
Int
)
{
outAdapterClicklistener
.
outAdapterClick
(
position
,
textPosition
)
}
})
if
(
categoryNamelList
[
position
].
collapse
)
{
eightCategoryAdapter
.
setAllVisible
()
holder
.
collapse_hide
.
text
=
"收起"
holder
.
arrow_collapse_hide
.
background
=
context
.
resources
.
getDrawable
(
R
.
drawable
.
consult_hide_arrow
)
}
else
{
eightCategoryAdapter
.
setGone
()
holder
.
collapse_hide
.
text
=
"展开"
holder
.
arrow_collapse_hide
.
background
=
context
.
resources
.
getDrawable
(
R
.
drawable
.
consult_collapse_arrow
)
}
holder
.
collapse_hide
.
setOnClickListener
{
if
(
categoryNamelList
[
position
].
collapse
)
{
//显示 展开
categoryNamelList
[
position
].
collapse
=
false
holder
.
collapse_hide
.
text
=
"展开"
holder
.
arrow_collapse_hide
.
background
=
context
.
resources
.
getDrawable
(
R
.
drawable
.
consult_collapse_arrow
)
eightCategoryAdapter
.
setGone
()
}
else
{
//显示收起
categoryNamelList
[
position
].
collapse
=
true
holder
.
collapse_hide
.
text
=
"收起"
holder
.
arrow_collapse_hide
.
background
=
context
.
resources
.
getDrawable
(
R
.
drawable
.
consult_hide_arrow
)
eightCategoryAdapter
.
setAllVisible
()
}
}
holder
.
category_list_detail
.
layoutManager
=
GridLayoutManager
(
context
,
3
)
holder
.
category_list_detail
.
adapter
=
eightCategoryAdapter
}
interface
OutAdapterClicklistener
{
fun
outAdapterClick
(
outPosition
:
Int
,
inPosition
:
Int
)
}
fun
setOutClicklistener
(
listener
:
OutAdapterClicklistener
)
{
this
.
outAdapterClicklistener
=
listener
}
inner
class
ViewHolder
(
itemView
:
View
)
:
RecyclerView
.
ViewHolder
(
itemView
)
{
val
category_name
=
itemView
.
category_name
val
category_list_detail
=
itemView
.
category_list_detail
val
collapse_hide
=
itemView
.
collapse_hide
val
arrow_collapse_hide
=
itemView
.
arrow_collapse_hide
}
}
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/adapter/CategoryDetailTextAdapter.kt
0 → 100644
View file @
6328d9be
package
com.yidianling.consultant.adapter
import
android.annotation.SuppressLint
import
android.content.Context
import
androidx.recyclerview.widget.RecyclerView
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
android.widget.TextView
import
androidx.core.content.ContextCompat
import
androidx.recyclerview.widget.GridLayoutManager
import
androidx.recyclerview.widget.LinearLayoutManager
import
com.yidianling.consultant.R
import
com.yidianling.consultant.model.bean.ChildrenBean
import
kotlinx.android.synthetic.main.consultant_layout_category_view.*
import
kotlinx.android.synthetic.main.eight_category_detail_item_item.view.*
import
kotlinx.android.synthetic.main.eight_category_detail_list_item.view.*
import
kotlinx.android.synthetic.main.eight_category_list_item.view.*
/**
* Created by zqk on 17-9-20.
*/
class
CategoryDetailTextAdapter
(
private
val
context
:
Context
,
private
val
categoryDetailList
:
MutableList
<
ChildrenBean
>,
)
:
RecyclerView
.
Adapter
<
CategoryDetailTextAdapter
.
ViewHolder
>()
{
var
isVisible
=
false
lateinit
var
textAdapterOnclickListener
:
TextAdapterOnclickListener
override
fun
getItemCount
():
Int
=
categoryDetailList
.
size
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
ViewHolder
{
val
itemView
=
LayoutInflater
.
from
(
context
)
.
inflate
(
R
.
layout
.
eight_category_detail_item_item
,
parent
,
false
)
return
ViewHolder
(
itemView
)
}
@SuppressLint
(
"UseCompatLoadingForDrawables"
)
override
fun
onBindViewHolder
(
holder
:
ViewHolder
,
position
:
Int
)
{
var
param
=
RecyclerView
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
WRAP_CONTENT
);
if
(
categoryDetailList
[
position
].
isVisible
)
{
param
.
height
=
ViewGroup
.
LayoutParams
.
WRAP_CONTENT
param
.
width
=
ViewGroup
.
LayoutParams
.
MATCH_PARENT
param
.
setMargins
(
0
,
0
,
10
,
10
)
holder
.
itemView
.
visibility
=
View
.
VISIBLE
}
else
{
param
.
height
=
0
param
.
width
=
0
holder
.
itemView
.
visibility
=
View
.
GONE
;
}
holder
.
itemView
.
layoutParams
=
param
holder
.
category_name_detail
.
text
=
categoryDetailList
[
position
].
cate_name
holder
.
category_name_detail
.
isSelected
=
categoryDetailList
[
position
].
isSelected
if
(
categoryDetailList
[
position
].
isSelected
)
{
holder
.
category_name_detail
.
setTextColor
(
context
.
resources
.
getColor
(
R
.
color
.
platform_main_theme
))
holder
.
category_name_detail
.
background
=
context
.
getDrawable
(
R
.
drawable
.
consult_price_expert_selected
)
}
else
{
holder
.
category_name_detail
.
background
=
context
.
getDrawable
(
R
.
drawable
.
consult_price_expert_unseleted
)
holder
.
category_name_detail
.
setTextColor
(
context
.
resources
.
getColor
(
R
.
color
.
platform_color_333333
))
}
holder
.
itemView
.
setOnClickListener
{
textAdapterOnclickListener
.
textOnClick
(
position
)
}
}
inner
class
ViewHolder
(
itemView
:
View
)
:
RecyclerView
.
ViewHolder
(
itemView
)
{
val
category_name_detail
=
itemView
.
category_name_detail
}
interface
TextAdapterOnclickListener
{
fun
textOnClick
(
position
:
Int
)
}
fun
setOnClick
(
adapterOnclickListener
:
TextAdapterOnclickListener
)
{
this
.
textAdapterOnclickListener
=
adapterOnclickListener
}
/**
* 设置大于第12个之后的标签全部显示
*/
fun
setAllVisible
()
{
categoryDetailList
.
forEach
{
bean
->
bean
.
isVisible
=
true
}
notifyDataSetChanged
()
isVisible
=
true
}
/**
* 设置大于第12个之后的标签全部隐藏
*/
fun
setGone
()
{
categoryDetailList
.
forEachIndexed
{
index
,
bean
->
if
(
index
>
12
)
{
bean
.
isVisible
=
false
}
}
notifyDataSetChanged
()
isVisible
=
false
}
}
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/adapter/EightCategoryAdapter.kt
0 → 100644
View file @
6328d9be
package
com.yidianling.consultant.adapter
import
android.content.Context
import
androidx.recyclerview.widget.RecyclerView
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
androidx.core.content.ContextCompat
import
com.yidianling.consultant.R
import
com.yidianling.consultant.model.bean.EightCategoryBean
import
kotlinx.android.synthetic.main.eight_category_list_item.view.*
/**
* Created by zqk on 17-9-20.
*/
class
EightCategoryAdapter
(
private
val
context
:
Context
,
private
val
eightCateList
:
MutableList
<
EightCategoryBean
>,
)
:
RecyclerView
.
Adapter
<
EightCategoryAdapter
.
ViewHolder
>()
{
lateinit
var
onLeftClickListener
:
OnLeftClickListener
override
fun
getItemCount
():
Int
=
eightCateList
.
size
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
ViewHolder
{
val
itemView
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
eight_category_list_item
,
parent
,
false
)
return
ViewHolder
(
itemView
)
}
override
fun
onBindViewHolder
(
holder
:
ViewHolder
,
position
:
Int
)
{
holder
.
eight_name
.
text
=
eightCateList
[
position
].
string
holder
.
itemView
.
setOnClickListener
{
onLeftClickListener
.
onLeftClick
(
position
)
}
if
(
eightCateList
[
position
].
selected
)
{
holder
.
itemView
.
setBackgroundColor
(
ContextCompat
.
getColor
(
context
,
R
.
color
.
white
))
}
else
{
holder
.
itemView
.
setBackgroundColor
(
ContextCompat
.
getColor
(
context
,
R
.
color
.
platform_color_F7F7F7
)
)
}
if
(
eightCateList
[
position
].
hasData
)
{
holder
.
multiple_choise
.
visibility
=
View
.
VISIBLE
}
else
{
holder
.
multiple_choise
.
visibility
=
View
.
GONE
}
}
interface
OnLeftClickListener
{
fun
onLeftClick
(
leftPosition
:
Int
)
}
fun
setleftClick
(
leftListener
:
OnLeftClickListener
)
{
this
.
onLeftClickListener
=
leftListener
}
inner
class
ViewHolder
(
itemView
:
View
)
:
RecyclerView
.
ViewHolder
(
itemView
)
{
val
eight_name
=
itemView
.
eight_name
val
multiple_choise
=
itemView
.
multiple_choise
}
}
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/model/bean/EightCategoryBean.kt
0 → 100644
View file @
6328d9be
package
com.yidianling.consultant.model.bean
data class
EightCategoryBean
(
val
string
:
String
,
var
collapse
:
Boolean
=
false
,
var
selected
:
Boolean
=
false
,
var
hasData
:
Boolean
=
false
)
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/ui/view/ConsultCategoryFragment.kt
deleted
100644 → 0
View file @
2a4f7cd1
package
com.yidianling.consultant.ui.view
import
com.ydl.ydlcommon.base.BaseFragment
import
com.yidianling.consultant.R
class
ConsultCategoryFragment
:
BaseFragment
()
{
override
fun
layoutResId
():
Int
{
return
R
.
layout
.
consultant_layout_category_view
}
override
fun
initDataAndEvent
()
{
}
override
fun
initDataAndEventLazy
()
{
}
}
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/ui/view/EightCategoryPopupWindow.kt
0 → 100644
View file @
6328d9be
package
com.yidianling.consultant.ui.view
import
android.content.Context
import
android.graphics.drawable.BitmapDrawable
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
android.widget.ImageView
import
android.widget.LinearLayout
import
android.widget.PopupWindow
import
androidx.fragment.app.FragmentActivity
import
com.yidianling.common.tools.RxImageTool
import
com.yidianling.common.tools.asFragmentActivity
import
com.yidianling.consultant.R
import
com.yidianling.consultant.adapter.SortAdapter
import
com.yidianling.consultant.layoutmanager.FlowLayoutManager
import
com.yidianling.consultant.listener.OnCategoriesSelectedListener
import
com.yidianling.consultant.model.bean.AllFilter
import
com.yidianling.consultant.model.bean.ChildrenBean
import
com.yidianling.consultant.ui.view.topView.EightCategoryView
import
kotlinx.android.synthetic.main.consultant_ui_eight_category_popup_window.view.*
import
kotlinx.android.synthetic.main.consultant_ui_subject_popup_window.view.*
import
kotlinx.android.synthetic.main.consultant_ui_subject_popup_window.view.btnConfirm
import
kotlinx.android.synthetic.main.consultant_ui_subject_popup_window.view.btn_reset
/**
* 主题弹窗
* Created by zqk on 17-9-15.
*/
class
EightCategoryPopupWindow
(
context
:
Context
,
allFilter
:
AllFilter
)
:
PopupWindow
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
RxImageTool
.
dp2px
(
566f
))
{
private
var
view
:
View
=
LayoutInflater
.
from
(
context
)
.
inflate
(
R
.
layout
.
consultant_ui_eight_category_popup_window
,
null
)
var
mAllFilter
:
AllFilter
private
var
context
:
Context
var
onSubjectsSelectedListener
:
OnCategoriesSelectedListener
?
=
null
lateinit
var
mutableList
:
MutableList
<
MutableList
<
ChildrenBean
>>
private
val
signList
=
ArrayList
<
String
>()
// 用于埋点
init
{
this
.
contentView
=
view
this
.
isFocusable
=
true
this
.
context
=
context
@Suppress
(
"DEPRECATION"
)
this
.
setBackgroundDrawable
(
BitmapDrawable
())
this
.
isOutsideTouchable
=
true
mAllFilter
=
allFilter
initView
()
}
fun
setListener
(
onSubjectsSelectedListener
:
OnCategoriesSelectedListener
)
{
this
.
onSubjectsSelectedListener
=
onSubjectsSelectedListener
val
eightCategoryView
=
EightCategoryView
(
context
)
eightCategoryView
.
setData
(
mutableList
,
mAllFilter
,
onSubjectsSelectedListener
)
view
.
eight_category_fl
.
addView
(
eightCategoryView
)
}
private
fun
initView
()
{
inputMethodMode
=
INPUT_METHOD_NEEDED
mutableList
=
mutableListOf
<
MutableList
<
ChildrenBean
>>()
mutableList
.
add
(
mAllFilter
.
childList
)
mutableList
.
add
(
mAllFilter
.
stressList
)
mutableList
.
add
(
mAllFilter
.
loveEmotionList
)
mutableList
.
add
(
mAllFilter
.
marriedFamilyList
)
mutableList
.
add
(
mAllFilter
.
personalGrowthList
)
mutableList
.
add
(
mAllFilter
.
interpersonalRelationshipList
)
mutableList
.
add
(
mAllFilter
.
careerDevelopmentList
)
mutableList
.
add
(
mAllFilter
.
mentalHealthList
)
// val fragmentTransaction = context?.asFragmentActivity()?.supportFragmentManager?.beginTransaction()
// val searchFragment=ConsultCategoryFragment()
// fragmentTransaction?.add(R.id.eight_category_fl,searchFragment)?.commit()
}
}
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/ui/view/topView/EightCategoryView.kt
0 → 100644
View file @
6328d9be
package
com.yidianling.consultant.ui.view.topView
import
android.content.Context
import
android.util.AttributeSet
import
android.util.Log
import
android.view.View
import
android.view.ViewGroup
import
android.widget.LinearLayout
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
com.yidianling.common.tools.LogUtil
import
com.yidianling.common.tools.RxImageTool
import
com.yidianling.consultant.R
import
com.yidianling.consultant.adapter.CategoryDetailAdapter
import
com.yidianling.consultant.adapter.EightCategoryAdapter
import
com.yidianling.consultant.listener.OnCategoriesSelectedListener
import
com.yidianling.consultant.model.bean.AllFilter
import
com.yidianling.consultant.model.bean.ChildrenBean
import
com.yidianling.consultant.model.bean.EightCategoryBean
import
kotlinx.android.synthetic.main.consultant_expert_search_big_shot_one.view.*
import
kotlinx.android.synthetic.main.consultant_layout_category_view.*
import
kotlinx.android.synthetic.main.consultant_layout_category_view.view.*
class
EightCategoryView
:
LinearLayout
,
CategoryDetailAdapter
.
OutAdapterClicklistener
,
EightCategoryAdapter
.
OnLeftClickListener
{
constructor
(
context
:
Context
)
:
super
(
context
)
{
mContext
=
context
initView
()
}
constructor
(
context
:
Context
,
attrs
:
AttributeSet
)
:
super
(
context
,
attrs
)
{
mContext
=
context
initView
()
}
constructor
(
context
:
Context
,
attrs
:
AttributeSet
,
defStyle
:
Int
)
:
super
(
context
,
attrs
,
defStyle
)
{
mContext
=
context
initView
()
}
private
var
mContext
:
Context
?
=
null
private
var
mutableList
:
MutableList
<
MutableList
<
ChildrenBean
>>?
=
null
private
lateinit
var
mAllfilter
:
AllFilter
private
var
eightCategoryListBean
=
mutableListOf
(
EightCategoryBean
(
"亲子教育"
,
false
,
false
,
false
),
EightCategoryBean
(
"情绪压力"
,
false
,
false
,
false
),
EightCategoryBean
(
"恋爱情感"
,
false
,
false
,
false
),
EightCategoryBean
(
"婚姻家庭"
,
false
,
false
,
false
),
EightCategoryBean
(
"个人成长"
,
false
,
false
,
false
),
EightCategoryBean
(
"人际关系"
,
false
,
false
,
false
),
EightCategoryBean
(
"职场发展"
,
false
,
false
,
false
),
EightCategoryBean
(
"心理健康"
,
false
,
false
,
false
)
)
private
lateinit
var
eightCategoryAdapter
:
EightCategoryAdapter
private
lateinit
var
categoryRightAdapter
:
CategoryDetailAdapter
private
val
signList
=
ArrayList
<
String
>()
// 用于埋点
var
onSubjectsSelectedListener
:
OnCategoriesSelectedListener
?
=
null
var
isDrag
=
false
private
fun
initView
()
{
layoutParams
=
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
RxImageTool
.
dp2px
(
466f
)
)
View
.
inflate
(
mContext
,
R
.
layout
.
consultant_layout_category_view
,
this
)
// 重置
btn_reset
.
setOnClickListener
{
reset
()
}
// 确定
btnConfirm
.
setOnClickListener
{
onSubjectsSelectedListener
?.
onCategoriesSelected
(
signList
)
}
}
fun
reset
()
{
mutableList
?.
forEachIndexed
{
index
,
mutableList
->
mutableList
.
forEachIndexed
{
index
,
childrenBean
->
childrenBean
.
isSelected
=
false
}
}
mAllfilter
.
categoryId2List
.
clear
()
mAllfilter
.
categoryId3List
.
clear
()
signList
.
clear
()
eightCategoryAdapter
.
notifyDataSetChanged
()
categoryRightAdapter
.
notifyDataSetChanged
()
}
fun
setData
(
mutableList
:
MutableList
<
MutableList
<
ChildrenBean
>>,
mAllFilter
:
AllFilter
,
onSubjectsSelectedListener
:
OnCategoriesSelectedListener
)
{
this
.
mutableList
=
mutableList
this
.
mAllfilter
=
mAllFilter
this
.
onSubjectsSelectedListener
=
onSubjectsSelectedListener
eightCategoryAdapter
=
mContext
?.
let
{
EightCategoryAdapter
(
it
,
eightCategoryListBean
)
}
!!
eightCategoryAdapter
.
setleftClick
(
this
)
eight_category
.
layoutManager
=
LinearLayoutManager
(
mContext
)
eight_category
.
adapter
=
eightCategoryAdapter
categoryRightAdapter
=
CategoryDetailAdapter
(
mContext
!!
,
mutableList
,
eightCategoryListBean
)
val
manager
=
LinearLayoutManager
(
mContext
)
category_detail
.
layoutManager
=
manager
category_detail
.
adapter
=
categoryRightAdapter
categoryRightAdapter
.
setOutClicklistener
(
this
)
category_detail
.
setOnScrollListener
(
object
:
RecyclerView
.
OnScrollListener
()
{
override
fun
onScrollStateChanged
(
recyclerView
:
RecyclerView
,
newState
:
Int
)
{
super
.
onScrollStateChanged
(
recyclerView
,
newState
)
if
(
newState
==
RecyclerView
.
SCROLL_STATE_DRAGGING
)
{
isDrag
=
false
}
}
override
fun
onScrolled
(
recyclerView
:
RecyclerView
,
dx
:
Int
,
dy
:
Int
)
{
super
.
onScrolled
(
recyclerView
,
dx
,
dy
)
if
(!
isDrag
)
{
var
firstVisibleItem
:
Int
=
manager
.
findFirstVisibleItemPosition
()
eightCategoryListBean
.
forEachIndexed
{
index
,
eightCategoryBean
->
eightCategoryListBean
[
index
].
selected
=
index
==
firstVisibleItem
}
eightCategoryAdapter
.
notifyDataSetChanged
()
}
}
})
}
override
fun
outAdapterClick
(
outPosition
:
Int
,
inPosition
:
Int
)
{
//之前的老数据多选分类页。
if
(
inPosition
==
0
)
{
if
(
mutableList
?.
get
(
outPosition
)
?.
get
(
0
)
?.
isSelected
!!
)
{
mutableList
?.
get
(
outPosition
)
?.
get
(
0
)
?.
isSelected
=
false
mAllfilter
.
categoryId2List
.
remove
(
mutableList
?.
get
(
outPosition
)
?.
get
(
0
)
?.
cate_id
)
signList
.
remove
(
eightCategoryListBean
[
outPosition
].
string
)
}
else
{
mutableList
?.
get
(
outPosition
)
?.
forEachIndexed
{
index
,
_
->
mutableList
?.
get
(
outPosition
)
?.
get
(
index
)
?.
isSelected
=
index
==
0
if
(
index
==
0
)
{
mutableList
?.
get
(
outPosition
)
?.
get
(
0
)
?.
cate_id
?.
let
{
mAllfilter
.
categoryId2List
.
add
(
it
)
}
signList
.
add
(
eightCategoryListBean
[
outPosition
].
string
)
}
else
{
mAllfilter
.
categoryId3List
.
remove
(
mutableList
?.
get
(
outPosition
)
?.
get
(
index
)
?.
cate_id
)
signList
.
remove
(
mutableList
?.
get
(
outPosition
)
?.
get
(
index
)
?.
cate_name
)
}
}
}
}
else
{
if
(!
mutableList
?.
get
(
outPosition
)
?.
get
(
inPosition
)
?.
isSelected
!!
&&
mutableList
?.
get
(
outPosition
)
?.
get
(
0
)
?.
isSelected
!!
)
{
mutableList
?.
get
(
outPosition
)
?.
get
(
0
)
?.
isSelected
=
false
mAllfilter
.
categoryId2List
.
remove
(
mutableList
?.
get
(
outPosition
)
?.
get
(
0
)
?.
cate_id
)
signList
.
remove
(
eightCategoryListBean
[
outPosition
].
string
)
}
mutableList
?.
get
(
outPosition
)
?.
get
(
inPosition
)
?.
isSelected
=
!
mutableList
?.
get
(
outPosition
)
?.
get
(
inPosition
)
?.
isSelected
!!
if
(
mutableList
?.
get
(
outPosition
)
?.
get
(
inPosition
)
?.
isSelected
!!
)
{
mutableList
?.
get
(
outPosition
)
?.
get
(
inPosition
)
?.
cate_id
?.
let
{
mAllfilter
.
categoryId3List
.
add
(
it
)
}
mutableList
?.
get
(
outPosition
)
?.
get
(
inPosition
)
?.
cate_name
?.
let
{
signList
.
add
(
it
)
}
}
else
{
mAllfilter
.
categoryId3List
.
remove
(
mutableList
?.
get
(
outPosition
)
?.
get
(
inPosition
)
?.
cate_id
)
signList
.
remove
(
mutableList
?.
get
(
outPosition
)
?.
get
(
inPosition
)
?.
cate_name
)
}
}
mutableList
?.
forEachIndexed
{
index
,
mutableList
->
eightCategoryListBean
.
get
(
index
).
hasData
=
false
mutableList
.
forEachIndexed
{
indexin
,
childrenBean
->
if
(
childrenBean
.
isSelected
)
{
eightCategoryListBean
.
get
(
index
).
hasData
=
true
return
@forEachIndexed
}
}
}
eightCategoryAdapter
.
notifyDataSetChanged
()
categoryRightAdapter
.
notifyDataSetChanged
()
}
override
fun
onLeftClick
(
leftPosition
:
Int
)
{
eightCategoryListBean
.
forEachIndexed
{
index
,
eightCategoryBean
->
eightCategoryListBean
[
index
].
selected
=
index
==
leftPosition
}
eightCategoryAdapter
.
notifyDataSetChanged
()
isDrag
=
true
category_detail
.
scrollToPosition
(
leftPosition
)
}
}
\ No newline at end of file
m-consultant/src/main/res/drawable-xxhdpi/consult_collapse_arrow.png
0 → 100644
View file @
6328d9be
445 Bytes
m-consultant/src/main/res/drawable-xxhdpi/consult_hide_arrow.png
0 → 100644
View file @
6328d9be
418 Bytes
m-consultant/src/main/res/layout/consultant_layout_category_view.xml
View file @
6328d9be
...
...
@@ -2,12 +2,57 @@
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:ignore=
"MissingDefaultResource"
>
android:layout_height=
"wrap_content"
android:background=
"@color/white"
android:orientation=
"vertical"
>
<
androidx.recyclerview.widget.RecyclerView
android:layout_width=
"
wrap_cont
ent"
android:layout_height=
"
wrap_content
"
>
<
LinearLayout
android:layout_width=
"
match_par
ent"
android:layout_height=
"
400dp
"
>
</androidx.recyclerview.widget.RecyclerView>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/eight_category"
android:layout_width=
"90dp"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
></androidx.recyclerview.widget.RecyclerView>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/category_detail"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
></androidx.recyclerview.widget.RecyclerView>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"68dp"
android:background=
"@color/white"
android:orientation=
"horizontal"
android:paddingStart=
"16dp"
android:paddingTop=
"8dp"
android:paddingEnd=
"16dp"
>
<TextView
android:id=
"@+id/btn_reset"
android:layout_width=
"0dp"
android:layout_height=
"44dp"
android:layout_weight=
"1"
android:background=
"@drawable/consultant_stroke_ebebeb_r_8"
android:gravity=
"center"
android:text=
"@string/platform_reset"
android:textColor=
"@color/platform_color_242424"
android:textSize=
"16sp"
/>
<TextView
android:id=
"@+id/btnConfirm"
android:layout_width=
"0dp"
android:layout_height=
"44dp"
android:layout_marginStart=
"13dp"
android:layout_weight=
"1"
android:background=
"@drawable/consultant_solid_main_theme_color_r_8"
android:gravity=
"center"
android:text=
"@string/platform_confirm"
android:textColor=
"@color/white"
android:textSize=
"16sp"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
m-consultant/src/main/res/layout/consultant_ui_eight_category_popup_window.xml
0 → 100644
View file @
6328d9be
<?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:orientation=
"vertical"
>
<LinearLayout
android:id=
"@+id/eight_category_fl"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
/>
</LinearLayout>
\ No newline at end of file
m-consultant/src/main/res/layout/eight_category_detail_item_item.xml
0 → 100644
View file @
6328d9be
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:id=
"@+id/category_name_detail"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginRight=
"@dimen/platform_dp_5"
android:layout_marginBottom=
"@dimen/platform_dp_5"
android:background=
"@drawable/consult_price_expert_unseleted"
android:gravity=
"center"
android:minHeight=
"@dimen/platform_dp_40"
android:paddingStart=
"@dimen/platform_dp_18"
android:paddingTop=
"@dimen/platform_dp_6"
android:paddingRight=
"@dimen/platform_dp_18"
android:paddingBottom=
"@dimen/platform_dp_6"
android:textColor=
"@color/platform_color_333333"
android:textSize=
"@dimen/platform_sp_12"
tools:text=
"aaaaaaaaa"
>
</TextView>
\ No newline at end of file
m-consultant/src/main/res/layout/eight_category_detail_list_item.xml
0 → 100644
View file @
6328d9be
<?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=
"wrap_content"
android:layout_marginStart=
"@dimen/platform_dp_12"
android:layout_marginEnd=
"@dimen/platform_dp_12"
android:orientation=
"vertical"
android:paddingTop=
"@dimen/platform_dp_6"
android:paddingBottom=
"@dimen/platform_dp_6"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"@dimen/platform_dp_12"
android:gravity=
"center"
>
<TextView
android:id=
"@+id/category_name"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:text=
"恋爱情感"
android:textColor=
"#1c212d"
android:textSize=
"@dimen/sp_14"
></TextView>
<TextView
android:id=
"@+id/collapse_hide"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:includeFontPadding=
"false"
android:padding=
"@dimen/platform_dp_5"
android:text=
"展开"
android:textColor=
"@color/platform_main_theme"
android:textSize=
"@dimen/platform_sp_12"
></TextView>
<ImageView
android:id=
"@+id/arrow_collapse_hide"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@drawable/consult_collapse_arrow"
>
</ImageView>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/category_list_detail"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
app:layoutManager=
"androidx.recyclerview.widget.GridLayoutManager"
app:spanCount=
"3"
>
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>
\ No newline at end of file
m-consultant/src/main/res/layout/eight_category_list_item.xml
0 → 100644
View file @
6328d9be
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:gravity=
"center"
android:orientation=
"horizontal"
>
<View
android:id=
"@+id/single_selected_tag"
android:layout_width=
"3dp"
android:layout_height=
"@dimen/platform_dp_20"
android:background=
"@color/platform_main_theme"
android:visibility=
"gone"
></View>
<ImageView
android:id=
"@+id/multiple_choise"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@drawable/alert_selected"
android:backgroundTint=
"@color/platform_main_theme"
android:visibility=
"gone"
>
</ImageView>
<TextView
android:id=
"@+id/eight_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/platform_dp_3"
android:layout_marginTop=
"@dimen/platform_dp_15"
android:layout_marginBottom=
"@dimen/platform_dp_15"
android:textColor=
"@color/color_242424"
android:textSize=
"@dimen/sp_14"
tools:text=
"情绪压力"
>
</TextView>
</LinearLayout>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment