Commit 19c2f60e by 刘鹏

feat: 消息类型,完善

parent fe422d1a
...@@ -25,6 +25,7 @@ import com.yidianling.uikit.business.session.view.question.QuestionAdapter ...@@ -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.QuestionMultiItem
import com.yidianling.uikit.business.session.view.question.QuestionOneCheckListener 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.OptionsBean
import com.yidianling.uikit.custom.http.response.question.QuestionsBean
import com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean import com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean
import kotlinx.android.synthetic.main.im_view_question_infomation.view.* import kotlinx.android.synthetic.main.im_view_question_infomation.view.*
import java.util.* import java.util.*
...@@ -38,7 +39,7 @@ import kotlin.collections.ArrayList ...@@ -38,7 +39,7 @@ import kotlin.collections.ArrayList
* @Company 壹点灵 * @Company 壹点灵
* @date 2019/12/10 * @date 2019/12/10
*/ */
@SuppressLint("ViewConstructor") @SuppressLint("ViewConstructor", "NewApi")
class QuestionInformationView( class QuestionInformationView(
var mContext: Activity, var mContext: Activity,
var skipEvent: () -> Unit, var skipEvent: () -> Unit,
...@@ -75,7 +76,7 @@ class QuestionInformationView( ...@@ -75,7 +76,7 @@ class QuestionInformationView(
mQuestionAdapter = QuestionAdapter(mData) mQuestionAdapter = QuestionAdapter(mData)
recycle.adapter = mQuestionAdapter recycle.adapter = mQuestionAdapter
mQuestionAdapter.setOneCheckListener(object : QuestionOneCheckListener { mQuestionAdapter.setOneCheckListener(object : QuestionOneCheckListener {
override fun itemClick(bean: OptionsBean?, questionId: String) { override fun itemClick(bean: OptionsBean?, question: QuestionsBean) {
val questionMultiItem = QuestionMultiItem() val questionMultiItem = QuestionMultiItem()
questionMultiItem.type2Text = bean?.name questionMultiItem.type2Text = bean?.name
...@@ -85,7 +86,7 @@ class QuestionInformationView( ...@@ -85,7 +86,7 @@ class QuestionInformationView(
recycle.scrollToPosition(mData.size - 1) recycle.scrollToPosition(mData.size - 1)
val questionMultiItem2 = QuestionMultiItem() val questionMultiItem2 = QuestionMultiItem()
// 使用问题questionId 去questionChains取到选项配置 // 使用问题questionId 去questionChains取到选项配置
val options = mQuestionBean!!.questionPaper.questionChains[questionId]?.options val options = mQuestionBean!!.questionPaper.questionChains[question.id]?.options
//从配置里找到下一题id //从配置里找到下一题id
val nextQuestionId = options?.get(bean?.id) val nextQuestionId = options?.get(bean?.id)
...@@ -129,7 +130,7 @@ class QuestionInformationView( ...@@ -129,7 +130,7 @@ class QuestionInformationView(
} }
override fun moreDefineItemClick(list: List<OptionsBean?>?, questionId: String) { override fun moreDefineItemClick(list: List<OptionsBean?>?, question: QuestionsBean) {
//多选确定 //多选确定
var anwserStr = "" var anwserStr = ""
list?.forEach { list?.forEach {
...@@ -149,7 +150,7 @@ class QuestionInformationView( ...@@ -149,7 +150,7 @@ class QuestionInformationView(
recycle.scrollToPosition(mData.size - 1) recycle.scrollToPosition(mData.size - 1)
val questionMultiItem2 = QuestionMultiItem() val questionMultiItem2 = QuestionMultiItem()
// 使用问题questionId 去questionChains取到选项配置 // 使用问题questionId 去questionChains取到选项配置
val options = mQuestionBean!!.questionPaper.questionChains[questionId]?.options val options = mQuestionBean!!.questionPaper.questionChains[question.id]?.options
//从配置里找到下一题id //从配置里找到下一题id
val nextQuestionId = options?.get(bean?.id) val nextQuestionId = options?.get(bean?.id)
...@@ -193,7 +194,7 @@ class QuestionInformationView( ...@@ -193,7 +194,7 @@ class QuestionInformationView(
recycle.scrollToPosition(mData.size - 1) 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 cl_input.visibility = VISIBLE
tv_problem.visibility = VISIBLE tv_problem.visibility = VISIBLE
...@@ -212,7 +213,38 @@ class QuestionInformationView( ...@@ -212,7 +213,38 @@ class QuestionInformationView(
}, 500L) }, 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 ...@@ -86,28 +86,25 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#1DA1F2")), 28, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#1DA1F2")), 28, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
helper.setText(R.id.tv_notes, spannableString); 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); TextView example = helper.getView(R.id.example);
if (example.getVisibility() == View.GONE) { if (example.getVisibility() == View.GONE) {
line.setVisibility(View.VISIBLE); type5_line.setVisibility(View.VISIBLE);
example.setVisibility(View.VISIBLE); example.setVisibility(View.VISIBLE);
} else { } else {
line.setVisibility(View.GONE); type5_line.setVisibility(View.GONE);
example.setVisibility(View.GONE); example.setVisibility(View.GONE);
} }
helper.setOnClickListener(R.id.tv_notes, new View.OnClickListener() { if (item.type5Open) {
@Override type5_line.setVisibility(View.VISIBLE);
public void onClick(View v) { example.setVisibility(View.VISIBLE);
if (example.getVisibility() == View.GONE) { } else {
line.setVisibility(View.VISIBLE); type5_line.setVisibility(View.GONE);
example.setVisibility(View.VISIBLE); example.setVisibility(View.GONE);
} else { }
line.setVisibility(View.GONE);
example.setVisibility(View.GONE); helper.addOnClickListener(R.id.tv_notes);
}
}
});
break; break;
default: default:
...@@ -140,14 +137,6 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem ...@@ -140,14 +137,6 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
public void onItemClick(BaseQuickAdapter adapter, View view, int position) { public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
if (item.type4CanClick) { if (item.type4CanClick) {
OptionsBean optionsBean = moreCheckAdapter.getData().get(position); 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; boolean check = optionsBean.check;
if (check) { if (check) {
moreCheckAdapter.getData().get(position).check = false; moreCheckAdapter.getData().get(position).check = false;
...@@ -155,6 +144,19 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem ...@@ -155,6 +144,19 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
moreCheckAdapter.getData().get(position).check = true; moreCheckAdapter.getData().get(position).check = true;
} }
moreCheckAdapter.notifyDataSetChanged(); 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) { if (getCheckOptionsBeans(moreCheckAdapter).size() > 0) {
tv_more_define.setBackground(ContextCompat.getDrawable(mContext, R.drawable.im_background_18dp_1da1f2)); tv_more_define.setBackground(ContextCompat.getDrawable(mContext, R.drawable.im_background_18dp_1da1f2));
tv_more_define.setEnabled(true); tv_more_define.setEnabled(true);
...@@ -174,7 +176,7 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem ...@@ -174,7 +176,7 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
public void onClick(View v) { public void onClick(View v) {
if (item.type4CanClick) { if (item.type4CanClick) {
List<OptionsBean> checkList = getCheckOptionsBeans(moreCheckAdapter); 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 ...@@ -204,7 +206,7 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
List<OptionsBean> data = oneCheckAdapter.getData(); List<OptionsBean> data = oneCheckAdapter.getData();
if ("其他".equals(data.get(position).name)) { if ("其他".equals(data.get(position).name)) {
List<OptionsBean> checkList = getCheckOptionsBeans(oneCheckAdapter); List<OptionsBean> checkList = getCheckOptionsBeans(oneCheckAdapter);
mOneCheckListener.showOtherEdit(checkList, item.questionsBean.id); mOneCheckListener.showOtherEdit(checkList, item.questionsBean);
} else { } else {
for (OptionsBean datum : data) { for (OptionsBean datum : data) {
if (datum.check) { if (datum.check) {
...@@ -213,7 +215,7 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem ...@@ -213,7 +215,7 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
} }
oneCheckAdapter.getData().get(position).check = true; oneCheckAdapter.getData().get(position).check = true;
oneCheckAdapter.notifyDataSetChanged(); 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 ...@@ -223,7 +225,7 @@ public class QuestionAdapter extends BaseMultiItemQuickAdapter<QuestionMultiItem
List<OptionsBean> data = moreCheckAdapter.getData(); List<OptionsBean> data = moreCheckAdapter.getData();
List<OptionsBean> checkList = new ArrayList(); List<OptionsBean> checkList = new ArrayList();
for (OptionsBean datum : data) { for (OptionsBean datum : data) {
if (datum.check) { if (datum.check && !("其他".equals(datum.name))) {
checkList.add(datum); checkList.add(datum);
} }
} }
......
...@@ -18,8 +18,12 @@ public class QuestionMultiItem implements MultiItemEntity { ...@@ -18,8 +18,12 @@ public class QuestionMultiItem implements MultiItemEntity {
public QuestionsBean questionsBean; public QuestionsBean questionsBean;
public boolean type4CanClick; public boolean type4CanClick;
/**
* type5
*/
public QuestionsBeanExample type5Bean; public QuestionsBeanExample type5Bean;
/***type5 展开or 收起*/
public boolean type5Open = true;
@Override @Override
public int getItemType() { public int getItemType() {
......
package com.yidianling.uikit.business.session.view.question 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.OptionsBean
import com.yidianling.uikit.custom.http.response.question.QuestionsBean
interface QuestionOneCheckListener { interface QuestionOneCheckListener {
/** /**
* 单选点击获取item信息 * 单选点击获取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 @@ ...@@ -46,7 +46,7 @@
android:textSize="14sp" /> android:textSize="14sp" />
<View <View
android:id="@+id/line" android:id="@+id/type5_line"
android:layout_width="239dp" android:layout_width="239dp"
android:layout_height="@dimen/platform_dp_05" android:layout_height="@dimen/platform_dp_05"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
......
...@@ -185,6 +185,25 @@ ...@@ -185,6 +185,25 @@
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </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> </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