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
19c2f60e
Commit
19c2f60e
authored
Jun 28, 2021
by
刘鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 消息类型,完善
parent
fe422d1a
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
102 additions
and
38 deletions
+102
-38
QuestionInformationView.kt
m-im/src/main/java/com/yidianling/uikit/business/session/view/QuestionInformationView.kt
+38
-6
QuestionAdapter.java
m-im/src/main/java/com/yidianling/uikit/business/session/view/question/QuestionAdapter.java
+29
-27
QuestionMultiItem.java
m-im/src/main/java/com/yidianling/uikit/business/session/view/question/QuestionMultiItem.java
+5
-1
QuestionOneCheckListener.kt
m-im/src/main/java/com/yidianling/uikit/business/session/view/question/QuestionOneCheckListener.kt
+10
-3
item_left_describe_layout.xml
m-im/src/main/res/layout/item_left_describe_layout.xml
+1
-1
im_view_question_infomation.xml
m-im/src/main/res_uikit/layout/im_view_question_infomation.xml
+19
-0
No files found.
m-im/src/main/java/com/yidianling/uikit/business/session/view/QuestionInformationView.kt
View file @
19c2f60e
...
...
@@ -25,6 +25,7 @@ import com.yidianling.uikit.business.session.view.question.QuestionAdapter
import
com.yidianling.uikit.business.session.view.question.QuestionMultiItem
import
com.yidianling.uikit.business.session.view.question.QuestionOneCheckListener
import
com.yidianling.uikit.custom.http.response.question.OptionsBean
import
com.yidianling.uikit.custom.http.response.question.QuestionsBean
import
com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean
import
kotlinx.android.synthetic.main.im_view_question_infomation.view.*
import
java.util.*
...
...
@@ -38,7 +39,7 @@ import kotlin.collections.ArrayList
* @Company 壹点灵
* @date 2019/12/10
*/
@SuppressLint
(
"ViewConstructor"
)
@SuppressLint
(
"ViewConstructor"
,
"NewApi"
)
class
QuestionInformationView
(
var
mContext
:
Activity
,
var
skipEvent
:
()
->
Unit
,
...
...
@@ -75,7 +76,7 @@ class QuestionInformationView(
mQuestionAdapter
=
QuestionAdapter
(
mData
)
recycle
.
adapter
=
mQuestionAdapter
mQuestionAdapter
.
setOneCheckListener
(
object
:
QuestionOneCheckListener
{
override
fun
itemClick
(
bean
:
OptionsBean
?,
question
Id
:
String
)
{
override
fun
itemClick
(
bean
:
OptionsBean
?,
question
:
QuestionsBean
)
{
val
questionMultiItem
=
QuestionMultiItem
()
questionMultiItem
.
type2Text
=
bean
?.
name
...
...
@@ -85,7 +86,7 @@ class QuestionInformationView(
recycle
.
scrollToPosition
(
mData
.
size
-
1
)
val
questionMultiItem2
=
QuestionMultiItem
()
// 使用问题questionId 去questionChains取到选项配置
val
options
=
mQuestionBean
!!
.
questionPaper
.
questionChains
[
question
I
d
]
?.
options
val
options
=
mQuestionBean
!!
.
questionPaper
.
questionChains
[
question
.
i
d
]
?.
options
//从配置里找到下一题id
val
nextQuestionId
=
options
?.
get
(
bean
?.
id
)
...
...
@@ -129,7 +130,7 @@ class QuestionInformationView(
}
override
fun
moreDefineItemClick
(
list
:
List
<
OptionsBean
?>?,
question
Id
:
String
)
{
override
fun
moreDefineItemClick
(
list
:
List
<
OptionsBean
?>?,
question
:
QuestionsBean
)
{
//多选确定
var
anwserStr
=
""
list
?.
forEach
{
...
...
@@ -149,7 +150,7 @@ class QuestionInformationView(
recycle
.
scrollToPosition
(
mData
.
size
-
1
)
val
questionMultiItem2
=
QuestionMultiItem
()
// 使用问题questionId 去questionChains取到选项配置
val
options
=
mQuestionBean
!!
.
questionPaper
.
questionChains
[
question
I
d
]
?.
options
val
options
=
mQuestionBean
!!
.
questionPaper
.
questionChains
[
question
.
i
d
]
?.
options
//从配置里找到下一题id
val
nextQuestionId
=
options
?.
get
(
bean
?.
id
)
...
...
@@ -193,7 +194,7 @@ class QuestionInformationView(
recycle
.
scrollToPosition
(
mData
.
size
-
1
)
}
override
fun
showOtherEdit
(
list
:
List
<
OptionsBean
?>?,
question
Id
:
String
)
{
override
fun
showOtherEdit
(
list
:
List
<
OptionsBean
?>?,
question
:
QuestionsBean
)
{
//显示输入框
cl_input
.
visibility
=
VISIBLE
tv_problem
.
visibility
=
VISIBLE
...
...
@@ -212,7 +213,38 @@ class QuestionInformationView(
},
500L
)
}
override
fun
hideOtherEdit
()
{
// TODO: 6/28/21 隐藏 其他键盘
}
})
mQuestionAdapter
.
setOnItemChildClickListener
{
adapter
,
view
,
position
->
if
(
view
.
id
==
R
.
id
.
tv_notes
)
{
//如何描述点击事件 ,展开后滑动到列表底部
mQuestionAdapter
.
data
[
position
].
type5Open
=
true
mQuestionAdapter
.
notifyDataSetChanged
()
recycle
.
smoothScrollToPosition
(
mQuestionAdapter
.
data
.
size
)
}
}
recycle
.
addOnScrollListener
(
object
:
RecyclerView
.
OnScrollListener
()
{
override
fun
onScrollStateChanged
(
recyclerView
:
RecyclerView
,
newState
:
Int
)
{
super
.
onScrollStateChanged
(
recyclerView
,
newState
)
if
(
newState
==
RecyclerView
.
SCROLL_STATE_DRAGGING
&&
mData
.
size
>
0
)
{
//监听滑动 如果是
for
((
index
,
item
)
in
mData
.
withIndex
())
{
if
(
item
.
viewType
==
5
&&
item
.
type5Open
)
{
mQuestionAdapter
.
data
[
index
].
type5Open
=
false
mQuestionAdapter
.
notifyItemChanged
(
index
)
}
}
}
}
})
}
...
...
m-im/src/main/java/com/yidianling/uikit/business/session/view/question/QuestionAdapter.java
View file @
19c2f60e
...
...
@@ -86,28 +86,25 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
spannableString
.
setSpan
(
new
ForegroundColorSpan
(
Color
.
parseColor
(
"#1DA1F2"
)),
28
,
spannableString
.
length
(),
Spanned
.
SPAN_EXCLUSIVE_EXCLUSIVE
);
helper
.
setText
(
R
.
id
.
tv_notes
,
spannableString
);
View
line
=
helper
.
getView
(
R
.
id
.
line
);
View
type5_line
=
helper
.
getView
(
R
.
id
.
type5_
line
);
TextView
example
=
helper
.
getView
(
R
.
id
.
example
);
if
(
example
.
getVisibility
()
==
View
.
GONE
)
{
line
.
setVisibility
(
View
.
VISIBLE
);
type5_
line
.
setVisibility
(
View
.
VISIBLE
);
example
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
line
.
setVisibility
(
View
.
GONE
);
type5_
line
.
setVisibility
(
View
.
GONE
);
example
.
setVisibility
(
View
.
GONE
);
}
helper
.
setOnClickListener
(
R
.
id
.
tv_notes
,
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
example
.
getVisibility
()
==
View
.
GONE
)
{
line
.
setVisibility
(
View
.
VISIBLE
);
example
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
line
.
setVisibility
(
View
.
GONE
);
example
.
setVisibility
(
View
.
GONE
);
}
}
});
if
(
item
.
type5Open
)
{
type5_line
.
setVisibility
(
View
.
VISIBLE
);
example
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
type5_line
.
setVisibility
(
View
.
GONE
);
example
.
setVisibility
(
View
.
GONE
);
}
helper
.
addOnClickListener
(
R
.
id
.
tv_notes
);
break
;
default
:
...
...
@@ -140,14 +137,6 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
public
void
onItemClick
(
BaseQuickAdapter
adapter
,
View
view
,
int
position
)
{
if
(
item
.
type4CanClick
)
{
OptionsBean
optionsBean
=
moreCheckAdapter
.
getData
().
get
(
position
);
if
(
"其他"
.
equals
(
optionsBean
.
name
))
{
List
<
OptionsBean
>
checkList
=
getCheckOptionsBeans
(
moreCheckAdapter
);
mOneCheckListener
.
showOtherEdit
(
checkList
,
item
.
questionsBean
.
id
);
return
;
}
boolean
check
=
optionsBean
.
check
;
if
(
check
)
{
moreCheckAdapter
.
getData
().
get
(
position
).
check
=
false
;
...
...
@@ -155,6 +144,19 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
moreCheckAdapter
.
getData
().
get
(
position
).
check
=
true
;
}
moreCheckAdapter
.
notifyDataSetChanged
();
if
(
"其他"
.
equals
(
optionsBean
.
name
))
{
if
(
moreCheckAdapter
.
getData
().
get
(
position
).
check
)
{
//选中
List
<
OptionsBean
>
checkList
=
getCheckOptionsBeans
(
moreCheckAdapter
);
mOneCheckListener
.
showOtherEdit
(
checkList
,
item
.
questionsBean
);
}
else
{
//取消选中
mOneCheckListener
.
hideOtherEdit
();
}
return
;
}
if
(
getCheckOptionsBeans
(
moreCheckAdapter
).
size
()
>
0
)
{
tv_more_define
.
setBackground
(
ContextCompat
.
getDrawable
(
mContext
,
R
.
drawable
.
im_background_18dp_1da1f2
));
tv_more_define
.
setEnabled
(
true
);
...
...
@@ -174,7 +176,7 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
public
void
onClick
(
View
v
)
{
if
(
item
.
type4CanClick
)
{
List
<
OptionsBean
>
checkList
=
getCheckOptionsBeans
(
moreCheckAdapter
);
mOneCheckListener
.
moreDefineItemClick
(
checkList
,
item
.
questionsBean
.
id
);
mOneCheckListener
.
moreDefineItemClick
(
checkList
,
item
.
questionsBean
);
}
}
});
...
...
@@ -204,7 +206,7 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
List
<
OptionsBean
>
data
=
oneCheckAdapter
.
getData
();
if
(
"其他"
.
equals
(
data
.
get
(
position
).
name
))
{
List
<
OptionsBean
>
checkList
=
getCheckOptionsBeans
(
oneCheckAdapter
);
mOneCheckListener
.
showOtherEdit
(
checkList
,
item
.
questionsBean
.
id
);
mOneCheckListener
.
showOtherEdit
(
checkList
,
item
.
questionsBean
);
}
else
{
for
(
OptionsBean
datum
:
data
)
{
if
(
datum
.
check
)
{
...
...
@@ -213,7 +215,7 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
}
oneCheckAdapter
.
getData
().
get
(
position
).
check
=
true
;
oneCheckAdapter
.
notifyDataSetChanged
();
mOneCheckListener
.
itemClick
(
data
.
get
(
position
),
item
.
questionsBean
.
id
);
mOneCheckListener
.
itemClick
(
data
.
get
(
position
),
item
.
questionsBean
);
}
}
});
...
...
@@ -223,7 +225,7 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
List
<
OptionsBean
>
data
=
moreCheckAdapter
.
getData
();
List
<
OptionsBean
>
checkList
=
new
ArrayList
();
for
(
OptionsBean
datum
:
data
)
{
if
(
datum
.
check
)
{
if
(
datum
.
check
&&
!(
"其他"
.
equals
(
datum
.
name
))
)
{
checkList
.
add
(
datum
);
}
}
...
...
m-im/src/main/java/com/yidianling/uikit/business/session/view/question/QuestionMultiItem.java
View file @
19c2f60e
...
...
@@ -18,8 +18,12 @@ public class QuestionMultiItem implements MultiItemEntity {
public
QuestionsBean
questionsBean
;
public
boolean
type4CanClick
;
/**
* type5
*/
public
QuestionsBeanExample
type5Bean
;
/***type5 展开or 收起*/
public
boolean
type5Open
=
true
;
@Override
public
int
getItemType
()
{
...
...
m-im/src/main/java/com/yidianling/uikit/business/session/view/question/QuestionOneCheckListener.kt
View file @
19c2f60e
package
com.yidianling.uikit.business.session.view.question
import
com.yidianling.uikit.custom.http.response.question.OptionsBean
import
com.yidianling.uikit.custom.http.response.question.QuestionsBean
interface
QuestionOneCheckListener
{
/**
* 单选点击获取item信息
*/
fun
itemClick
(
bean
:
OptionsBean
?,
question
Id
:
String
)
fun
itemClick
(
bean
:
OptionsBean
?,
question
:
QuestionsBean
)
/**
* 多选确定按钮点击
*/
fun
moreDefineItemClick
(
list
:
List
<
OptionsBean
?>?,
question
Id
:
String
)
fun
moreDefineItemClick
(
list
:
List
<
OptionsBean
?>?,
question
:
QuestionsBean
)
/**
* 展示其他
*/
fun
showOtherEdit
(
list
:
List
<
OptionsBean
?>?,
questionId
:
String
)
fun
showOtherEdit
(
list
:
List
<
OptionsBean
?>?,
question
:
QuestionsBean
)
/**
* 隐藏其他
*/
fun
hideOtherEdit
()
}
\ No newline at end of file
m-im/src/main/res/layout/item_left_describe_layout.xml
View file @
19c2f60e
...
...
@@ -46,7 +46,7 @@
android:textSize=
"14sp"
/>
<View
android:id=
"@+id/line"
android:id=
"@+id/
type5_
line"
android:layout_width=
"239dp"
android:layout_height=
"@dimen/platform_dp_05"
android:layout_marginTop=
"8dp"
...
...
m-im/src/main/res_uikit/layout/im_view_question_infomation.xml
View file @
19c2f60e
...
...
@@ -185,6 +185,25 @@
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- 开始-->
<TextView
android:id=
"@+id/tv_finish"
android:layout_width=
"match_parent"
android:layout_height=
"40dp"
android:layout_marginLeft=
"30dp"
android:layout_marginTop=
"14dp"
android:layout_marginRight=
"30dp"
android:layout_marginBottom=
"14dp"
android:background=
"@drawable/im_background_collect_info_bottom_start"
android:gravity=
"center"
android:text=
"去沟通"
android:textColor=
"@color/white"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"parent"
android:visibility=
"gone"
tools:visibility=
"gone"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
...
...
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