Commit 19c2f60e by 刘鹏

feat: 消息类型,完善

parent fe422d1a
......@@ -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?, questionId: 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[questionId]?.options
val options = mQuestionBean!!.questionPaper.questionChains[question.id]?.options
//从配置里找到下一题id
val nextQuestionId = options?.get(bean?.id)
......@@ -129,7 +130,7 @@ class QuestionInformationView(
}
override fun moreDefineItemClick(list: List<OptionsBean?>?, questionId: 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[questionId]?.options
val options = mQuestionBean!!.questionPaper.questionChains[question.id]?.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?>?, questionId: 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)
}
}
}
}
})
}
......
......@@ -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);
}
}
......
......@@ -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() {
......
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?, questionId: String)
fun itemClick(bean: OptionsBean?, question: QuestionsBean)
/**
* 多选确定按钮点击
*/
fun moreDefineItemClick(list: List<OptionsBean?>?, questionId: 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
......@@ -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"
......
......@@ -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>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment