Commit 4f7e47e8 by 徐健

UI基本完成

parent aaf081b2
package com.yidianling.uikit.business.session.fragment;
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.StateListDrawable;
import android.media.AudioManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.constraint.ConstraintLayout;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.animation.Animation;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.TranslateAnimation;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
......@@ -81,12 +73,11 @@ import com.yidianling.uikit.custom.http.response.CommonQuestionBean;
import com.yidianling.uikit.custom.http.response.SubmitUserInfoBean;
import com.yidianling.uikit.custom.http.response.UserQuestInfoBean;
import com.yidianling.uikit.custom.widget.ConfideOrderInfoView;
import com.yidianling.uikit.custom.widget.HalfCircleDrawable;
import com.yidianling.uikit.custom.widget.expertConsultService.view.ExpertConsultServiceListDialog;
import com.yidianling.uikit.custom.widget.ExpertInfoDialog;
import com.yidianling.user.api.service.IUserService;
import org.jetbrains.annotations.NotNull;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Calendar;
......@@ -147,11 +138,6 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
private TextView server_num_tv; //服务时长
private TextView good_num_tv; //好评率
private TextView qingshu; //即时倾诉
private Boolean canConsultBtnClick = true; //即时倾诉按钮是否可点击
private ImageView qingshuImg; //预约咨询
private LinearLayout top_expert_info_ll;
private int expertInfoViewHeight = 0; // 专家信息栏高度
private RecyclerView messageListView;
......@@ -173,7 +159,10 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
private Boolean expertInfoViewIsIn = true;
private Boolean expertInfoViewIsAnimating = false;
private int IN_OUT_DURATION = 1000;
private ExpertInfoDialog expertInfoDialog;
private ExpertConsultServiceListDialog expertConsultServiceListDialog;
private int IN_OUT_DURATION = 400;
private Boolean hasUpScroll = false;
......@@ -209,8 +198,6 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
tv_all_comment_desc = rootView.findViewById(R.id.tv_all_comment_desc);
tv_all_comment_go = rootView.findViewById(R.id.tv_all_comment_go);
comment_banner_view = rootView.findViewById(R.id.comment_banner_view);
qingshu = rootView.findViewById(R.id.action_qingshu);
qingshuImg = rootView.findViewById(R.id.action_qingshu_img);
messageListView = rootView.findViewById(R.id.messageListView); // 消息列表
top_view_container = rootView.findViewById(R.id.top_view_container); // 消息列表
constraint_ll = rootView.findViewById(R.id.constraint_ll);
......@@ -306,13 +293,10 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
// 监听消息发送状态的变化通知
NIMClient.getService(MsgServiceObserve.class).observeMsgStatus(
new Observer<IMMessage>() {
@Override
public void onEvent(IMMessage imMessage) {
// 参数为有状态发生改变的消息对象,其 msgStatus 和 attachStatus 均为最新状态。
// 发送消息和接收消息的状态监听均可以通过此接口完成。
Log.e("hzs", "接收到消息状态变化-------MessageFragment");
}
(Observer<IMMessage>) imMessage -> {
// 参数为有状态发生改变的消息对象,其 msgStatus 和 attachStatus 均为最新状态。
// 发送消息和接收消息的状态监听均可以通过此接口完成。
Log.e("hzs", "接收到消息状态变化-------MessageFragment");
}, true);
......@@ -343,7 +327,6 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
Log.i("dy=", String.valueOf(dy));
if (dy < 0 && Math.abs(dy) > 15) {
......@@ -373,11 +356,11 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
private void initAnimation() {
anim_out = newAnimation(0f, 1f);
anim_out.setDuration(300);
anim_out.setDuration(IN_OUT_DURATION);
anim_in = newAnimation(1f, 0f);
anim_in.setDuration(300);
anim_in.setDuration(IN_OUT_DURATION);
anim_in.addUpdateListener(animation -> {
if (expertInfoViewHeight != 0) {
if (expertInfoViewHeight != 0 && constraint_ll != null) {
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) constraint_ll.getLayoutParams();
......@@ -408,7 +391,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
}
});
anim_out.addUpdateListener(animation -> {
if (expertInfoViewHeight != 0) {
if (expertInfoViewHeight != 0 && constraint_ll != null) {
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) constraint_ll.getLayoutParams();
params.topMargin = (int) (-expertInfoViewHeight * Float.valueOf(animation.getAnimatedValue().toString()));
......@@ -442,8 +425,8 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
}
private ValueAnimator newAnimation(float fromYValue, float toYValue) {
ValueAnimator anim1 = ValueAnimator.ofFloat(fromYValue, toYValue);
return anim1;
ValueAnimator anim = ValueAnimator.ofFloat(fromYValue, toYValue);
return anim;
}
/**
......@@ -477,6 +460,16 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
}
}
}
top_expert_info_cl.setOnClickListener(v -> {
//todo show dialog
if (null != getActivity()) {
if (expertInfoDialog == null) {
expertInfoDialog = new ExpertInfoDialog(getActivity());
}
expertInfoDialog.show();
}
});
}
/**
......@@ -502,96 +495,86 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
//初始化聊天顶部快捷菜单
private void initMenu() {
View rela_zixun = rootView.findViewById(R.id.rela_zixun);
StateListDrawable consultDrawable = new StateListDrawable();
consultDrawable.addState(new int[]{android.R.attr.state_pressed}, new HalfCircleDrawable(getContext(), false, ContextCompat.getColor(getContext(), R.color.platform_color_F7F7F7)));
consultDrawable.addState(new int[]{}, new HalfCircleDrawable(getContext(), false, Color.WHITE));
rela_zixun.setBackground(consultDrawable);
TextView yuyue = (TextView) rootView.findViewById(R.id.action_yuyue);
rela_zixun.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LogHelper.Companion.getInstance().writeLogSync("聊天界面点击预约");
if (ActionHandlerStorage.getL(sessionId) != null) {
try {
JSONObject jsb = new JSONObject();
jsb.put("button_name", "预约");
ActionHandlerStorage.getL(sessionId).buryPoint("messageClick", jsb);
} catch (Exception e) {
e.printStackTrace();
rela_zixun.setOnClickListener(view -> {
if (ActionHandlerStorage.getL(sessionId) != null) {
if (expertConsultServiceListDialog == null) {
if (getActivity()!= null) {
expertConsultServiceListDialog = new ExpertConsultServiceListDialog(getActivity());
}
ActionHandlerStorage.getL(sessionId).showZhuanjPage();
} else {
ToastUtil.toastShort("请退出聊天重试");
}
}
});
expertConsultServiceListDialog.show();
//倾诉
RelativeLayout rela_qingsu = rootView.findViewById(R.id.rela_qingsu);
StateListDrawable confideDrawable = new StateListDrawable();
confideDrawable.addState(new int[]{android.R.attr.state_pressed}, new HalfCircleDrawable(getContext(), true, ContextCompat.getColor(getContext(), R.color.platform_color_F7F7F7)));
confideDrawable.addState(new int[]{}, new HalfCircleDrawable(getContext(), true, Color.WHITE));
rela_qingsu.setBackground(confideDrawable);
if (ActionHandlerStorage.getL(sessionId) != null && ActionHandlerStorage.getL(sessionId).getInfo().listenerIsOpen == 1) {//开通倾诉
int status = ActionHandlerStorage.getL(sessionId).getInfo().isChatOnline;
if (status == 5) {
qingshu.setText("倾诉通话中...");
qingshu.setTextColor(Color.parseColor("#BFBFBF"));
qingshuImg.setImageResource(R.mipmap.im_chat_ico_calling);
canConsultBtnClick = false;
} else if (status == 3 || status == 4 || status == 6) {
qingshu.setText("即时倾诉");
qingshu.setTextColor(Color.parseColor("#BFBFBF"));
qingshuImg.setImageResource(R.mipmap.im_chat_ico_calling);
canConsultBtnClick = false;
} else {
qingshu.setText("即时倾诉");
qingshu.setTextColor(Color.parseColor("#242424"));
qingshuImg.setImageResource(R.mipmap.im_chat_ico_can_call);
canConsultBtnClick = true;
}
if (ActionHandlerStorage.getL(sessionId).getInfo().hasAvailableListenOrder == 2) {//有未完成订单
qingshu.setText("继续倾诉");
qingshu.setTextColor(Color.parseColor("#242424"));
qingshuImg.setImageResource(R.mipmap.im_chat_ico_calling);
canConsultBtnClick = true;
}
} else {
qingshu.setText("即时倾诉");
qingshu.setTextColor(Color.parseColor("#242424"));
qingshuImg.setImageResource(R.mipmap.im_chat_ico_can_call);
canConsultBtnClick = true;
}
rela_qingsu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (canConsultBtnClick) {
LogHelper.Companion.getInstance().writeLogSync("聊天界面点击电话倾诉");
if (ActionHandlerStorage.getL(sessionId) != null) {
try {
JSONObject jsb = new JSONObject();
jsb.put("button_name", "电话倾诉");
ActionHandlerStorage.getL(sessionId).buryPoint("messageClick", jsb);
JSONObject jsonObject = new JSONObject();
jsonObject.put("expert_id", ActionHandlerStorage.getL(sessionId).getInfo().doctorId);
jsonObject.put("expert_name", ActionHandlerStorage.getL(sessionId).getInfo().name);
jsonObject.put("listen_entrance", "私聊窗口");
ActionHandlerStorage.getL(sessionId).buryPoint("Listen_expert", jsonObject);
} catch (JSONException e) {
e.printStackTrace();
}
ActionHandlerStorage.getL(sessionId).confide();
} else {
ToastUtil.toastShort("请退出聊天重试");
}
}
ToastUtil.toastShort("请退出聊天重试");
}
});
//倾诉,不确定是否还要使用,暂留
// RelativeLayout rela_qingsu = rootView.findViewById(R.id.rela_qingsu);
// StateListDrawable confideDrawable = new StateListDrawable();
// confideDrawable.addState(new int[]{android.R.attr.state_pressed}, new HalfCircleDrawable(getContext(), true, ContextCompat.getColor(getContext(), R.color.platform_color_F7F7F7)));
// confideDrawable.addState(new int[]{}, new HalfCircleDrawable(getContext(), true, Color.WHITE));
// rela_qingsu.setBackground(confideDrawable);
//
// if (ActionHandlerStorage.getL(sessionId) != null && ActionHandlerStorage.getL(sessionId).getInfo().listenerIsOpen == 1) {//开通倾诉
// int status = ActionHandlerStorage.getL(sessionId).getInfo().isChatOnline;
// if (status == 5) {
// qingshu.setText("倾诉通话中...");
// qingshu.setTextColor(Color.parseColor("#BFBFBF"));
// qingshuImg.setImageResource(R.mipmap.im_chat_ico_calling);
// canConsultBtnClick = false;
// } else if (status == 3 || status == 4 || status == 6) {
// qingshu.setText("即时倾诉");
// qingshu.setTextColor(Color.parseColor("#BFBFBF"));
// qingshuImg.setImageResource(R.mipmap.im_chat_ico_calling);
// canConsultBtnClick = false;
// } else {
// qingshu.setText("即时倾诉");
// qingshu.setTextColor(Color.parseColor("#242424"));
// qingshuImg.setImageResource(R.mipmap.im_chat_ico_can_call);
// canConsultBtnClick = true;
// }
// if (ActionHandlerStorage.getL(sessionId).getInfo().hasAvailableListenOrder == 2) {//有未完成订单
// qingshu.setText("继续倾诉");
// qingshu.setTextColor(Color.parseColor("#242424"));
// qingshuImg.setImageResource(R.mipmap.im_chat_ico_calling);
// canConsultBtnClick = true;
// }
// } else {
// qingshu.setText("即时倾诉");
// qingshu.setTextColor(Color.parseColor("#242424"));
// qingshuImg.setImageResource(R.mipmap.im_chat_ico_can_call);
// canConsultBtnClick = true;
// }
//
//
// rela_qingsu.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// if (canConsultBtnClick) {
// LogHelper.Companion.getInstance().writeLogSync("聊天界面点击电话倾诉");
// if (ActionHandlerStorage.getL(sessionId) != null) {
// try {
// JSONObject jsb = new JSONObject();
// jsb.put("button_name", "电话倾诉");
// ActionHandlerStorage.getL(sessionId).buryPoint("messageClick", jsb);
//
// JSONObject jsonObject = new JSONObject();
// jsonObject.put("expert_id", ActionHandlerStorage.getL(sessionId).getInfo().doctorId);
// jsonObject.put("expert_name", ActionHandlerStorage.getL(sessionId).getInfo().name);
// jsonObject.put("listen_entrance", "私聊窗口");
// ActionHandlerStorage.getL(sessionId).buryPoint("Listen_expert", jsonObject);
// } catch (JSONException e) {
// e.printStackTrace();
// }
// ActionHandlerStorage.getL(sessionId).confide();
// } else {
// ToastUtil.toastShort("请退出聊天重试");
// }
// }
// }
// });
}
private void initYiMenu() {
......
package com.yidianling.uikit.custom.widget
import android.app.Dialog
import android.content.Context
import android.os.Bundle
import android.view.Gravity
import android.view.WindowManager
import com.yidianling.im.R
import kotlinx.android.synthetic.main.im_expert_info_dialog_layout.*
import kotlinx.android.synthetic.main.im_safe_help_remind_dialog_layout.*
/**
* 专家信息弹窗
* Created by xj on 2019/8/7.
*/
class ExpertInfoDialog(val mContext: Context): Dialog(mContext, R.style.dialog_default_style) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.im_expert_info_dialog_layout)
val params = window.attributes
params.width = WindowManager.LayoutParams.MATCH_PARENT
params.height = WindowManager.LayoutParams.WRAP_CONTENT
window.setGravity(Gravity.CENTER)
window.attributes = params
expert_info_close.setOnClickListener {
if (null != mContext) {
dismiss()
}
}
}
}
\ No newline at end of file
package com.yidianling.uikit.custom.widget.expertConsultService.callback
interface ConsultServiceViewCallback {
fun onCloseClick() {}//关闭按钮点击
fun onBackClick() {}//返回列表点击
fun onItemClick(serviceId: Int) {} //服务列表点击
}
\ No newline at end of file
package com.yidianling.uikit.custom.widget.expertConsultService.view
import android.content.Context
import android.util.AttributeSet
import android.view.View
import android.widget.LinearLayout
import android.widget.RelativeLayout
import com.yidianling.common.tools.RxDeviceTool
import com.yidianling.im.R
import com.yidianling.uikit.custom.widget.expertConsultService.callback.ConsultServiceViewCallback
import kotlinx.android.synthetic.main.im_expert_consult_service_detail_view.view.*
class ExpertConsultServiceDetailView : RelativeLayout {
constructor(context: Context, listener: ConsultServiceViewCallback) : super(context) {
mListener = listener
mContext = context
initView()
}
private var mListener: ConsultServiceViewCallback? = null
private var mContext: Context? = null
private fun initView() {
val mWidth: Int = RxDeviceTool.getScreenWidth(mContext)
val mHeight: Int = LayoutParams.MATCH_PARENT
val params = LayoutParams(
mWidth,
mHeight
)
params.height = mHeight
layoutParams = params
View.inflate(mContext, R.layout.im_expert_consult_service_detail_view, this)
im_expert_service_list_left_back_btn.setOnClickListener {
mListener?.onBackClick()
}
}
/**
* 设置数据
*/
fun setData(bean: String) {
}
}
\ No newline at end of file
package com.yidianling.uikit.custom.widget.expertConsultService.view
import android.content.Context
import android.util.AttributeSet
import android.view.View
import android.widget.LinearLayout
import com.yidianling.im.R
import com.yidianling.uikit.custom.widget.expertConsultService.callback.ConsultServiceViewCallback
import kotlinx.android.synthetic.main.im_expert_consult_service_item_view.view.*
class ExpertConsultServiceItemView : LinearLayout {
constructor(context: Context, listener: ConsultServiceViewCallback?) : super(context) {
mListener = listener
mContext = context
initView()
}
private var mContext: Context? = null
private var mListener: ConsultServiceViewCallback? = null
private fun initView() {
val mWidth: Int = LayoutParams.MATCH_PARENT
val mHeight: Int = LayoutParams.WRAP_CONTENT
val params = LayoutParams(
mWidth,
mHeight
)
params.height = mHeight
layoutParams = params
orientation = HORIZONTAL
View.inflate(mContext, R.layout.im_expert_consult_service_item_view, this)
setOnClickListener {
//todo xj 接接口的时候修改成服务id
mListener?.onItemClick(0)
}
im_expert_service_list_btn.setOnClickListener {
//todo 去咨询
}
}
/**
* 设置数据
*/
fun setData(bean: String) {
}
}
\ No newline at end of file
package com.yidianling.uikit.custom.widget.expertConsultService.view
import android.animation.ObjectAnimator
import android.animation.ValueAnimator
import android.app.Dialog
import android.content.Context
import android.os.Bundle
import android.support.v4.view.PagerAdapter
import android.view.Gravity
import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import android.view.animation.TranslateAnimation
import android.widget.LinearLayout
import android.widget.ScrollView
import com.yidianling.common.tools.RxDeviceTool
import com.yidianling.common.tools.RxImageTool
import com.yidianling.im.R
import com.yidianling.uikit.custom.widget.expertConsultService.callback.ConsultServiceViewCallback
import kotlinx.android.synthetic.main.im_expert_consult_service_list_dialog_layout.*
/**
* 专家咨询服务列表弹框
* Created by xj on 2019/8/7.
*/
class ExpertConsultServiceListDialog(val mContext: Context): Dialog(mContext, R.style.dialog_default_style) {
private var mConsultServiceListView: View? = null
private var mConsultServiceDetailView: View? = null
private var mViewList: ArrayList<View> = ArrayList()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.im_expert_consult_service_list_dialog_layout)
val params = window.attributes
params.width = WindowManager.LayoutParams.MATCH_PARENT
params.height = RxDeviceTool.getScreenHeight(mContext) - RxImageTool.dp2px(100f)
params.gravity = Gravity.BOTTOM
window.setWindowAnimations(R.style.bottom_to_top_dialog_style)
window.attributes = params
var typeList:ArrayList<String> = ArrayList()
typeList.add("全部")
typeList.add("婚姻家庭")
typeList.add("恋爱情感")
typeList.add("性心理")
typeList.add("亲子关系")
typeList.add("人际社交")
typeList.add("精神疾病")
var serviceList:ArrayList<String> = ArrayList()
serviceList.add("全部")
serviceList.add("婚姻家庭")
serviceList.add("恋爱情感")
serviceList.add("性心理")
serviceList.add("亲子关系")
serviceList.add("人际社交")
serviceList.add("精神疾病")
mConsultServiceListView =
ExpertConsultServiceView(
mContext
)
(mConsultServiceListView as ExpertConsultServiceView).setDataAndClick(typeList, serviceList, object : ConsultServiceViewCallback {
override fun onCloseClick() {
dismiss()
}
override fun onItemClick(serviceId: Int) {
// todo 执行右滑动画和接口请求
dialog_bottom_scroll_view.currentItem = 1
}
})
mViewList.add(mConsultServiceListView as View)
mConsultServiceDetailView =
ExpertConsultServiceDetailView(
mContext, object : ConsultServiceViewCallback {
override fun onBackClick() {
// todo 执行左滑动画
dialog_bottom_scroll_view.currentItem = 0
}
})
mViewList.add(mConsultServiceDetailView as View)
dialog_bottom_scroll_view.adapter = ConsultServicePagerAdapter()
dialog_bottom_scroll_view.currentItem = 0
setCanceledOnTouchOutside(true)
}
internal inner class ConsultServicePagerAdapter : PagerAdapter() {
override fun getCount(): Int {
return mViewList.size
}
override fun isViewFromObject(view: View, `object`: Any): Boolean {
return view === `object`
}
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val view = mViewList[position]
container.addView(view)
return view
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
container.removeView(`object` as View)
}
}
}
\ No newline at end of file
package com.yidianling.uikit.custom.widget.expertConsultService.view
import android.content.Context
import android.graphics.Color
import android.util.AttributeSet
import android.view.View
import android.widget.LinearLayout
import com.yidianling.im.R
import kotlinx.android.synthetic.main.im_expert_consult_service_type_item_view.view.*
class ExpertConsultServiceTypeItemView : LinearLayout {
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 fun initView() {
val mWidth: Int = LayoutParams.WRAP_CONTENT
val mHeight: Int = LayoutParams.WRAP_CONTENT
val params = LayoutParams(
mWidth,
mHeight
)
params.height = mHeight
layoutParams = params
View.inflate(mContext, R.layout.im_expert_consult_service_type_item_view, this)
}
/**
* 设置数据
*/
fun setData(typeString: String, isSelected: Boolean) {
im_expert_info_dialog_type_item_text.text = typeString
if (isSelected) {
im_expert_info_dialog_type_item_text.setTextColor((Color.parseColor("#1DA1F2")))
im_expert_info_dialog_type_item_text.setBackgroundResource(R.drawable.im_expert_info_dialog_type_item_selected_bg)
} else {
im_expert_info_dialog_type_item_text.setTextColor((Color.parseColor("#999999")))
im_expert_info_dialog_type_item_text.setBackgroundResource(R.drawable.im_expert_info_dialog_type_item_unselected_bg)
}
}
/**
* 更新状态
*/
fun updateStatus(isSelected: Boolean) {
if (isSelected) {
im_expert_info_dialog_type_item_text.setTextColor((Color.parseColor("#1DA1F2")))
im_expert_info_dialog_type_item_text.setBackgroundResource(R.drawable.im_expert_info_dialog_type_item_selected_bg)
} else {
im_expert_info_dialog_type_item_text.setTextColor((Color.parseColor("#999999")))
im_expert_info_dialog_type_item_text.setBackgroundResource(R.drawable.im_expert_info_dialog_type_item_unselected_bg)
}
}
}
\ No newline at end of file
package com.yidianling.uikit.custom.widget.expertConsultService.view
import android.content.Context
import android.util.AttributeSet
import android.view.View
import android.widget.LinearLayout
import com.yidianling.common.tools.RxDeviceTool
import com.yidianling.im.R
import com.yidianling.uikit.custom.widget.expertConsultService.callback.ConsultServiceViewCallback
import kotlinx.android.synthetic.main.im_expert_consult_service_view.view.*
class ExpertConsultServiceView : LinearLayout {
private var typeSelectedIndex: Int = 0
private var mTypeList: ArrayList<String> = ArrayList()
private var mServiceList: ArrayList<String> = ArrayList()
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 fun initView() {
val mWidth: Int = RxDeviceTool.getScreenWidth(mContext)
val mHeight: Int = LayoutParams.MATCH_PARENT
val params = LayoutParams(
mWidth,
mHeight
)
params.height = mHeight
layoutParams = params
orientation = VERTICAL
View.inflate(mContext, R.layout.im_expert_consult_service_view, this)
}
/**
* typeList 类型列表
* serviceList 服务列表
*/
fun setDataAndClick(
typeList: ArrayList<String>,
serviceList: ArrayList<String>,
listener: ConsultServiceViewCallback?
) {
consult_service_dialog_close.setOnClickListener {
listener?.onCloseClick()
}
// 设置顶部滚动类型数据
if (typeList == null || typeList.size == 0) {
expert_consult_service_top_scroll.visibility = View.GONE
} else {
mTypeList.clear()
mTypeList.addAll(typeList)
mContext?.let {
mTypeList.forEachIndexed { index, str ->
val item =
ExpertConsultServiceTypeItemView(
mContext!!
)
item.setData(str, index == typeSelectedIndex)
item.setOnClickListener {
resetSelected(index)
}
expert_consult_service_type_list.addView(item)
}
}
}
// 设置服务列表数据
if (serviceList != null && serviceList.size != 0) {
mServiceList.clear()
mServiceList.addAll(serviceList)
mServiceList.forEachIndexed { index, str ->
val item = ExpertConsultServiceItemView(mContext!!, listener)
expert_consult_service_service_list.addView(item)
}
}
}
private fun resetSelected(index: Int) {
typeSelectedIndex = index
for (index in 0 until expert_consult_service_type_list.childCount) {
var view = expert_consult_service_type_list.getChildAt(index)
if (view is ExpertConsultServiceTypeItemView) {
view.updateStatus(index == typeSelectedIndex)
}
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="300"
android:fromYDelta="0"
android:toYDelta="50%p" />
<alpha
android:duration="300"
android:fromAlpha="1.0"
android:toAlpha="0.0" />
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="300"
android:fromYDelta="100%p"
android:toYDelta="0" />
<alpha
android:duration="300"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:topLeftRadius="15dp"
android:topRightRadius="15dp" />
<solid android:color="#ffffff"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="12dp" />
<solid android:color="#EBF7FF"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="12dp" />
<solid android:color="#F7F7F7"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="19dp" />
<gradient android:startColor="#FF7A5C"
android:endColor="#FF406C"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="14dp" />
<gradient android:startColor="#FF7A5C"
android:endColor="#FF406C"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<merge 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:parentTag="android.widget.RelativeLayout">
<LinearLayout
android:id="@+id/consult_service_title_ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:orientation="horizontal"
android:paddingRight="15dp">
<ImageView
android:id="@+id/im_expert_service_list_left_back_btn"
android:layout_width="36dp"
android:layout_height="36.5dp"
android:paddingTop="4.5dp"
android:paddingBottom="16dp"
android:paddingLeft="15dp"
android:paddingRight="5dp"
android:scaleType="centerCrop"
android:src="@drawable/im_expert_service_list_left_back" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="调节孕期情绪烦躁,建立积极心态面对新生活"
android:textColor="#1A1A1A"
android:textSize="20dp"
android:textStyle="bold" />
</LinearLayout>
<View
android:id="@+id/consult_service_line_1"
android:layout_width="match_parent"
android:layout_height="6dp"
android:layout_below="@+id/consult_service_title_ll"
android:background="#F5F7F7" />
<ScrollView
android:layout_below="@+id/consult_service_line_1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/consult_service_desc_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="10dp"
android:text="服务介绍"
android:textColor="#242424"
android:textSize="18dp"
android:textStyle="bold" />
<TextView
android:id="@+id/consult_service_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="15dp"
android:text="相互了解,初步建立咨访关系,解答你心中关于咨询本身的一切疑惑,解答你心中关于咨询本身的一切疑惑,解答你心中关于咨询本身的一切疑惑,为你的困扰解决明确咨询目标与方案。相互了解,初步建立咨访关系,解答你心中关于咨询本身的一切疑惑,为你的困扰解决明确咨询目标与方案。相互了解,初步建立咨访关系,解答你心中关于咨询"
android:textColor="#666666"
android:textSize="14dp"
android:textStyle="bold" />
<View
android:id="@+id/consult_service_line_2"
android:layout_width="match_parent"
android:layout_height="6dp"
android:background="#F5F7F7" />
<TextView
android:id="@+id/consult_service_shuoming_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="8dp"
android:text="服务说明"
android:textColor="#242424"
android:textSize="18dp"
android:textStyle="bold" />
<LinearLayout
android:id="@+id/consult_service_shuoming_1l_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="类型:"
android:textColor="#999999"
android:textSize="12dp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="次数:"
android:textColor="#999999"
android:textSize="12dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/consult_service_shuoming_1l_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="2dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="单次"
android:textColor="#242424"
android:textSize="14dp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1次"
android:textColor="#242424"
android:textSize="14dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/consult_service_shuoming_1l_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="单次可选时长:"
android:textColor="#999999"
android:textSize="12dp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="支持方式:"
android:textColor="#999999"
android:textSize="12dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/consult_service_shuoming_1l_4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="2dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="30分钟/60分钟"
android:textColor="#242424"
android:textSize="14dp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="电话/文字/视频/面对面"
android:textColor="#242424"
android:textSize="14dp" />
</LinearLayout>
<View
android:id="@+id/consult_service_line_3"
android:layout_width="match_parent"
android:layout_height="6dp"
android:layout_marginTop="18dp"
android:background="#F5F7F7" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="18dp"
android:layout_marginBottom="8dp"
android:text="咨询流程说明"
android:textColor="#242424"
android:textSize="18dp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="70dp">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/expert_consult_service_icon_xiadan"
android:scaleType="fitXY"
android:layout_marginBottom="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下单预约"
android:textColor="#242424"
android:textSize="14dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/expert_consult_service_icon_queren"
android:scaleType="fitXY"
android:layout_marginBottom="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="咨询师确认"
android:textColor="#242424"
android:textSize="14dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/expert_consult_service_icon_jieting"
android:scaleType="fitXY"
android:layout_marginBottom="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="接听电话"
android:textColor="#242424"
android:textSize="14dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/expert_consult_service_icon_zixun"
android:scaleType="fitXY"
android:layout_marginBottom="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始咨询"
android:textColor="#242424"
android:textSize="14dp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/detail_bottom_ll"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:background="#ffffff">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="¥"
android:textColor="#FF5040"
android:textSize="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="320"
android:textColor="#FF5040"
android:textSize="16dp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/次"
android:textColor="#666666"
android:textSize="10dp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:layout_width="125dp"
android:layout_height="38dp"
android:background="@drawable/im_expert_service_detail_btn_bg"
android:gravity="center"
android:text="立即预约"
android:textColor="#ffffff"
android:textSize="14dp"
android:textStyle="bold" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="#EBEBEB"
android:layout_alignTop="@+id/detail_bottom_ll"/>
</merge>
\ No newline at end of file
<?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="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginLeft="18dp"
android:orientation="vertical"
android:paddingTop="10dp"
android:paddingBottom="18dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="调节孕期情绪烦躁,建立积极心态面对新生活"
android:textColor="#1A1A1A"
android:textSize="16dp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="top"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="¥"
android:textColor="#FF5040"
android:textSize="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="320"
android:textColor="#FF5040"
android:textSize="16dp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/60分钟"
android:textColor="#999999"
android:textSize="12dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="好评率"
android:textColor="#999999"
android:textSize="12dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="99.9%"
android:textColor="#1A1A1A"
android:textSize="12dp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical|center"
android:paddingLeft="31dp"
android:paddingRight="18dp"
android:orientation="vertical">
<TextView
android:id="@+id/im_expert_service_list_btn"
android:layout_width="68dp"
android:layout_height="27dp"
android:background="@drawable/im_expert_service_list_btn_bg"
android:gravity="center"
android:text="预约"
android:textColor="#ffffff"
android:textSize="14dp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="销量2244"
android:textColor="#999999"
android:textSize="10dp" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?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">
<View
android:layout_width="match_parent"
android:layout_height="15dp"
android:background="@drawable/im_expert_conslt_service_list_top_bg" />
<com.ydl.ydlcommon.view.NoScrollViewPager
android:id="@+id/dialog_bottom_scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff">
</com.ydl.ydlcommon.view.NoScrollViewPager>
</LinearLayout>
\ No newline at end of file
<?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:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="6dp">
<TextView
android:id="@+id/im_expert_info_dialog_type_item_text"
android:layout_width="wrap_content"
android:layout_height="24dp"
android:paddingLeft="14dp"
android:paddingRight="14dp"
android:gravity="center"
tools:text="婚姻家庭"
android:textColor="#999999"
android:text="12dp"
android:background="@drawable/im_expert_info_dialog_type_item_unselected_bg"/>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="24dp"
>
<ImageView
android:id="@+id/consult_service_dialog_close"
android:layout_width="16dp"
android:layout_height="16dp"
android:src="@drawable/im_expert_service_list_left_delete"
android:layout_marginLeft="14dp"
android:scaleType="centerCrop"
android:layout_centerVertical="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="咨询服务"
android:textColor="#242424"
android:textSize="18dp"
android:textStyle="bold"
android:layout_centerInParent="true"/>
</RelativeLayout>
<HorizontalScrollView
android:id="@+id/expert_consult_service_top_scroll"
android:layout_width="match_parent"
android:layout_height="44dp"
android:paddingLeft="15dp"
android:clipToPadding="false"
android:scrollbars="none">
<LinearLayout
android:id="@+id/expert_consult_service_type_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_vertical">
</LinearLayout>
</HorizontalScrollView>
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="#EBEBEB"/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/expert_consult_service_service_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="dialog_button_text_style">
<item name="android:textSize">@dimen/im_big_text_size</item>
<item name="android:textColor">@color/im_black</item>
<item name="android:background">@drawable/im_nim_list_item_selector</item>
<item name="android:paddingTop">@dimen/im_custom_dialog_padding_vertical</item>
<item name="android:paddingBottom">@dimen/im_custom_dialog_padding_vertical</item>
</style>
<style name="custom_dialog_message_text_style">
<item name="android:textSize">@dimen/im_normal_text_size</item>
<item name="android:textColor">@color/im_color_black_333333</item>
<item name="android:paddingLeft">@dimen/im_dialog_text_margin_horizontal</item>
<item name="android:paddingRight">@dimen/im_dialog_text_margin_horizontal</item>
<item name="android:paddingTop">@dimen/im_custom_dialog_padding_vertical</item>
<item name="android:paddingBottom">@dimen/im_custom_dialog_padding_vertical</item>
<item name="android:background">@drawable/im_nim_list_item_selector</item>
</style>
<style name="easy_dialog_style" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<!-- 边框 -->
<item name="android:windowIsFloating">true</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsTranslucent">true</item>
<!-- 半透明 -->
<item name="android:windowNoTitle">true</item>
<!-- 无标题 -->
<item name="android:windowBackground">@color/im_transparent</item>
<!-- 背景透明 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- 后面的activity变暗 -->
</style>
<style name="dialog_default_style" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@color/im_transparent</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
<style name="dialog_title_text_style">
<item name="android:textSize">@dimen/im_big_text_size</item>
<item name="android:textColor">@color/im_color_activity_blue_bg</item>
<item name="android:textStyle">bold</item>
<item name="android:paddingLeft">@dimen/im_dialog_text_margin_horizontal</item>
<item name="android:paddingRight">@dimen/im_dialog_text_margin_horizontal</item>
<item name="android:paddingTop">@dimen/im_dialog_padding_vertical</item>
<item name="android:paddingBottom">@dimen/im_dialog_padding_vertical</item>
</style>
<!-- view -->
<style name="dialog_message_text_style">
<item name="android:textSize">@dimen/im_normal_text_size</item>
<item name="android:textColor">@color/im_grey</item>
<item name="android:paddingLeft">@dimen/im_dialog_text_margin_horizontal</item>
<item name="android:paddingRight">@dimen/im_dialog_text_margin_horizontal</item>
<item name="android:paddingTop">@dimen/im_dialog_padding_vertical</item>
<item name="android:paddingBottom">@dimen/im_dialog_padding_vertical</item>
</style>
<style name="grid_view" parent="@android:style/Widget.GridView">
<item name="android:scrollbarThumbVertical">@drawable/im_nim_scrollbar_handle_holo_dark</item>
<item name="android:scrollbarThumbHorizontal">@drawable/im_nim_scrollbar_handle_holo_dark</item>
</style>
<style name="list_view" parent="@android:style/Widget.ListView">
<item name="android:scrollbarThumbVertical">@drawable/im_nim_scrollbar_handle_holo_dark</item>
<item name="android:scrollbarThumbHorizontal">@drawable/im_nim_scrollbar_handle_holo_dark</item>
</style>
<style name="scroll_view" parent="@android:style/Widget.ScrollView">
<item name="android:scrollbarThumbVertical">@drawable/im_nim_scrollbar_handle_holo_dark</item>
<item name="android:scrollbarThumbHorizontal">@drawable/im_nim_scrollbar_handle_holo_dark</item>
</style>
<style name="blue_bottom_line_edit_text_style" parent="@android:style/Widget.EditText">
<item name="android:background">@drawable/im_nim_blue_edit_text_bg</item>
<item name="android:paddingLeft">6dp</item>
<item name="android:paddingRight">6dp</item>
<item name="android:paddingBottom">6dp</item>
<item name="android:paddingTop">6dp</item>
<item name="android:includeFontPadding">false</item>
<item name="android:gravity">center_vertical</item>
</style>
<style name="horizontal_light_thin_divider">
<item name="android:layout_height">2px</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:background">@color/im_color_gray_d9d9d9</item>
</style>
<!--====================RES_AVCHAT====================-->
<!--====================RES_AVCHAT====================-->
<!--====================RES_AVCHAT====================-->
<!--====================RES_UIKIT====================-->
<!--====================RES_UIKIT====================-->
<!--====================RES_UIKIT====================-->
<style name="horizontal_deep_thick_divider">
<item name="android:layout_height">@dimen/im_split_one_dip</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:background">@color/im_color_gray_d9d9d9</item>
</style>
<declare-styleable name="TitleBarBottom">
<attr name="left_text" format="string"/>
<attr name="left_start_icon" format="reference" />
<attr name="left_end_icon" format="reference" />
<attr name="title_text" format="string" />
<attr name="title_color" format="color"/>
<attr name="right_text" format="string"/>
<attr name="right_start_icon" format="reference" />
<attr name="right_end_icon" format="reference" />
<attr name="side_text_color" format="color" />
<attr name="title_bar_text_color" format="color|reference" />
<attr name="title_bar_bg" format="color|reference" />
<attr name="right_iv" format="reference"/>
<attr name="show_bottom_title" format="boolean"/>
</declare-styleable>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="dialog_button_text_style">
<item name="android:textSize">@dimen/im_big_text_size</item>
<item name="android:textColor">@color/im_black</item>
<item name="android:background">@drawable/im_nim_list_item_selector</item>
<item name="android:paddingTop">@dimen/im_custom_dialog_padding_vertical</item>
<item name="android:paddingBottom">@dimen/im_custom_dialog_padding_vertical</item>
</style>
<style name="custom_dialog_message_text_style">
<item name="android:textSize">@dimen/im_normal_text_size</item>
<item name="android:textColor">@color/im_color_black_333333</item>
<item name="android:paddingLeft">@dimen/im_dialog_text_margin_horizontal</item>
<item name="android:paddingRight">@dimen/im_dialog_text_margin_horizontal</item>
<item name="android:paddingTop">@dimen/im_custom_dialog_padding_vertical</item>
<item name="android:paddingBottom">@dimen/im_custom_dialog_padding_vertical</item>
<item name="android:background">@drawable/im_nim_list_item_selector</item>
</style>
<style name="easy_dialog_style" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<!-- 边框 -->
<item name="android:windowIsFloating">true</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsTranslucent">true</item>
<!-- 半透明 -->
<item name="android:windowNoTitle">true</item>
<!-- 无标题 -->
<item name="android:windowBackground">@color/im_transparent</item>
<!-- 背景透明 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- 后面的activity变暗 -->
</style>
<style name="dialog_default_style" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@color/im_transparent</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
<style name="dialog_title_text_style">
<item name="android:textSize">@dimen/im_big_text_size</item>
<item name="android:textColor">@color/im_color_activity_blue_bg</item>
<item name="android:textStyle">bold</item>
<item name="android:paddingLeft">@dimen/im_dialog_text_margin_horizontal</item>
<item name="android:paddingRight">@dimen/im_dialog_text_margin_horizontal</item>
<item name="android:paddingTop">@dimen/im_dialog_padding_vertical</item>
<item name="android:paddingBottom">@dimen/im_dialog_padding_vertical</item>
</style>
<!-- view -->
<style name="dialog_message_text_style">
<item name="android:textSize">@dimen/im_normal_text_size</item>
<item name="android:textColor">@color/im_grey</item>
<item name="android:paddingLeft">@dimen/im_dialog_text_margin_horizontal</item>
<item name="android:paddingRight">@dimen/im_dialog_text_margin_horizontal</item>
<item name="android:paddingTop">@dimen/im_dialog_padding_vertical</item>
<item name="android:paddingBottom">@dimen/im_dialog_padding_vertical</item>
</style>
<style name="grid_view" parent="@android:style/Widget.GridView">
<item name="android:scrollbarThumbVertical">@drawable/im_nim_scrollbar_handle_holo_dark</item>
<item name="android:scrollbarThumbHorizontal">@drawable/im_nim_scrollbar_handle_holo_dark</item>
</style>
<style name="list_view" parent="@android:style/Widget.ListView">
<item name="android:scrollbarThumbVertical">@drawable/im_nim_scrollbar_handle_holo_dark</item>
<item name="android:scrollbarThumbHorizontal">@drawable/im_nim_scrollbar_handle_holo_dark</item>
</style>
<style name="scroll_view" parent="@android:style/Widget.ScrollView">
<item name="android:scrollbarThumbVertical">@drawable/im_nim_scrollbar_handle_holo_dark</item>
<item name="android:scrollbarThumbHorizontal">@drawable/im_nim_scrollbar_handle_holo_dark</item>
</style>
<style name="blue_bottom_line_edit_text_style" parent="@android:style/Widget.EditText">
<item name="android:background">@drawable/im_nim_blue_edit_text_bg</item>
<item name="android:paddingLeft">6dp</item>
<item name="android:paddingRight">6dp</item>
<item name="android:paddingBottom">6dp</item>
<item name="android:paddingTop">6dp</item>
<item name="android:includeFontPadding">false</item>
<item name="android:gravity">center_vertical</item>
</style>
<style name="horizontal_light_thin_divider">
<item name="android:layout_height">2px</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:background">@color/im_color_gray_d9d9d9</item>
</style>
<!--====================RES_AVCHAT====================-->
<!--====================RES_AVCHAT====================-->
<!--====================RES_AVCHAT====================-->
<!--====================RES_UIKIT====================-->
<!--====================RES_UIKIT====================-->
<!--====================RES_UIKIT====================-->
<style name="horizontal_deep_thick_divider">
<item name="android:layout_height">@dimen/im_split_one_dip</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:background">@color/im_color_gray_d9d9d9</item>
</style>
<declare-styleable name="TitleBarBottom">
<attr name="left_text" format="string"/>
<attr name="left_start_icon" format="reference" />
<attr name="left_end_icon" format="reference" />
<attr name="title_text" format="string" />
<attr name="title_color" format="color"/>
<attr name="right_text" format="string"/>
<attr name="right_start_icon" format="reference" />
<attr name="right_end_icon" format="reference" />
<attr name="side_text_color" format="color" />
<attr name="title_bar_text_color" format="color|reference" />
<attr name="title_bar_bg" format="color|reference" />
<attr name="right_iv" format="reference"/>
<attr name="show_bottom_title" format="boolean"/>
</declare-styleable>
<style name="bottom_to_top_dialog_style">
<item name="android:windowEnterAnimation">@anim/bottom_pop_show_anim</item>
<!-- 指定显示的动画xml -->
<item name="android:windowExitAnimation">@anim/bottom_pop_hidden_anim</item>
<!-- 指定消失的动画xml -->
</style>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="6dp" />
<solid android:color="@color/im_white" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:topLeftRadius="18dp"
android:bottomLeftRadius="18dp"/>
<gradient
android:angle="180"
android:startColor="#FF406C"
android:endColor="#FF7A5C"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#ffffff"/>
<corners
android:radius="6dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="3dp"></corners>
<gradient
android:angle="270"
android:startColor="#FF406C"
android:endColor="#FF7A5C"/>
</shape>
\ No newline at end of file
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:gravity="center_horizontal"
android:orientation="vertical">
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:background="@drawable/im_expert_info_dialog_bg"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/im_expert_info_dialog_top_bg"
android:scaleType="centerCrop"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="雷水寿咨询师在壹点灵平台已服务2648人,累计1634小时的心理服务经验,99.9%的用户给予满意好评,具体包含:"
android:textSize="@dimen/im_text_size_16"
android:textColor="@color/im_color_242424"
android:textStyle="bold"
android:layout_marginLeft="@dimen/platform_dp_20"
android:layout_marginRight="@dimen/platform_dp_20"
android:layout_marginTop="16dp"
android:layout_marginBottom="11dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="28dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<View
android:layout_width="6dp"
android:layout_height="6dp"
android:background="@drawable/im_more_info_red_point"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end"
android:text="心理咨询1214小时"
android:layout_marginLeft="6dp"
android:textSize="14dp"
android:textColor="#242424"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="28dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<View
android:layout_width="6dp"
android:layout_height="6dp"
android:background="@drawable/im_more_info_red_point"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end"
android:text="即时倾诉420小时"
android:layout_marginLeft="6dp"
android:textSize="14dp"
android:textColor="#242424"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="28dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<View
android:layout_width="6dp"
android:layout_height="6dp"
android:background="@drawable/im_more_info_red_point"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end"
android:text="用户好评共1258条,占比99.9%"
android:layout_marginLeft="6dp"
android:textSize="14dp"
android:textColor="#242424"/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end"
android:text="* 数据统计至2019年12月24日"
android:layout_marginLeft="20dp"
android:layout_marginTop="26dp"
android:textSize="14dp"
android:textColor="#999999"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="壹点灵通过严谨数据统计机制,对咨询师的数据进行持续的监督管理,确保提供真实有效的数据参考。"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="20dp"
android:layout_marginTop="8dp"
android:textSize="14dp"
android:textColor="#999999"/>
</LinearLayout>
<ImageView
android:id="@+id/expert_info_close"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginTop="30dp"
android:src="@drawable/im_expert_info_dialog_close_icon"/>
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
......@@ -126,18 +126,33 @@
android:textSize="@dimen/platform_dp_20"
tools:text="1634" />
<TextView
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="服务时长 (小时)"
android:textColor="@color/platform_color_999999"
android:textSize="@dimen/platform_dp_10" />
android:orientation="horizontal"
android:gravity="center"
android:layout_alignParentBottom="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="服务时长 (小时)"
android:textColor="@color/platform_color_999999"
android:textSize="@dimen/platform_dp_10" />
<ImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:src="@drawable/im_more_info_icon"
android:scaleType="fitXY"
android:layout_marginLeft="2dp"/>
</LinearLayout>
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
<!--用户评论banner-->
<LinearLayout
android:id="@+id/comment_banner_view_ll"
android:layout_width="match_parent"
......@@ -176,8 +191,10 @@
<ImageView
android:id="@+id/tv_all_comment_go"
android:layout_width="4dp"
android:layout_height="8dp"
android:layout_height="37dp"
android:layout_marginLeft="8dp"
android:paddingTop="14.5dp"
android:paddingBottom="14.5dp"
android:scaleType="fitXY"
android:src="@drawable/im_comment_list_right_icon" />
......@@ -308,7 +325,7 @@
android:divider="@null"
android:fadingEdge="none"
android:listSelector="@android:color/transparent"
android:scrollbars="vertical"/>
android:scrollbars="vertical" />
<!--右边的两个快捷回复按钮-->
<RelativeLayout
......@@ -319,82 +336,57 @@
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:layout_marginTop="10dp"
android:layout_marginRight="@dimen/platform_dp_10"
android:visibility="visible">
<RelativeLayout
android:id="@+id/rela_qingsu"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:background="@drawable/im_bg_im_confide_action"
android:gravity="center"
android:paddingLeft="14dp"
android:paddingRight="17dp">
<ImageView
android:id="@+id/action_qingshu_img"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_centerVertical="true"
android:src="@mipmap/im_chat_ico_call" />
<TextView
android:id="@+id/action_qingshu"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toRightOf="@+id/action_qingshu_img"
android:gravity="center"
android:paddingLeft="5dp"
android:text="即时倾诉"
android:textColor="@color/platform_google_blue"
android:textSize="12dp"
android:textStyle="bold" />
</RelativeLayout>
<!-- <RelativeLayout-->
<!-- android:id="@+id/rela_qingsu"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="36dp"-->
<!-- android:background="@drawable/im_bg_im_confide_action"-->
<!-- android:gravity="center"-->
<!-- android:paddingLeft="14dp"-->
<!-- android:paddingRight="17dp">-->
<!-- <ImageView-->
<!-- android:id="@+id/action_qingshu_img"-->
<!-- android:layout_width="12dp"-->
<!-- android:layout_height="12dp"-->
<!-- android:layout_centerVertical="true"-->
<!-- android:src="@mipmap/im_chat_ico_call" />-->
<!-- <TextView-->
<!-- android:id="@+id/action_qingshu"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="match_parent"-->
<!-- android:layout_toRightOf="@+id/action_qingshu_img"-->
<!-- android:gravity="center"-->
<!-- android:paddingLeft="5dp"-->
<!-- android:text="即时倾诉"-->
<!-- android:textColor="@color/platform_google_blue"-->
<!-- android:textSize="12dp"-->
<!-- android:textStyle="bold" />-->
<!-- </RelativeLayout>-->
<RelativeLayout
android:id="@+id/rela_zixun"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:layout_marginLeft="-4dp"
android:layout_toRightOf="@+id/rela_qingsu"
android:background="@drawable/im_bg_im_confide_action"
android:gravity="center"
android:paddingLeft="17dp"
android:paddingRight="14dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/im_bg_im_confide_top_tips"
android:paddingLeft="5dp"
android:paddingTop="1dp"
android:paddingRight="5dp"
android:paddingBottom="1dp"
android:text="立减20元"
android:textColor="@color/im_white"
android:textSize="9sp"
android:visibility="gone" />
<ImageView
android:id="@+id/img_zixun"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_centerVertical="true"
android:src="@mipmap/im_chat_pre_zixun" />
android:paddingRight="11dp">
<TextView
android:id="@+id/action_yuyue"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toRightOf="@+id/img_zixun"
android:gravity="center"
android:paddingLeft="5dp"
android:text="预约咨询"
android:textColor="@color/platform_google_green"
android:textSize="12dp"
android:text="立即咨询"
android:textColor="#ffffff"
android:textSize="14dp"
android:textStyle="bold" />
</RelativeLayout>
......@@ -499,7 +491,6 @@
android:visibility="gone" />
<include
layout="@layout/im_nim_message_activity_bottom_layout" />
<include layout="@layout/im_nim_message_activity_bottom_layout" />
</LinearLayout>
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