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
273439ed
Commit
273439ed
authored
Dec 05, 2019
by
徐健
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/daoyi_xj' into dev
# Conflicts: # config.gradle
parents
9d69366f
ded9c5d8
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
292 additions
and
86 deletions
+292
-86
config.gradle
config.gradle
+1
-1
AudioHomeActivity.kt
m-audioim/src/main/java/com/ydl/audioim/AudioHomeActivity.kt
+2
-0
ExpertSearchActivity.kt
m-consultant/src/main/java/com/yidianling/consultant/ExpertSearchActivity.kt
+5
-1
ExpertSearchFragment.kt
m-consultant/src/main/java/com/yidianling/consultant/ExpertSearchFragment.kt
+4
-0
ConsultAssistantDialog.kt
m-consultant/src/main/java/com/yidianling/consultant/dialog/ConsultAssistantDialog.kt
+85
-3
ConsultAssistantDialogUtils.kt
m-consultant/src/main/java/com/yidianling/consultant/modular/singlton/ConsultAssistantDialogUtils.kt
+99
-75
consultant_assistant_dialog_close_icon.png
m-consultant/src/main/res/drawable-xhdpi/consultant_assistant_dialog_close_icon.png
+0
-0
consultant_assistant_dialog_go_icon.png
m-consultant/src/main/res/drawable-xhdpi/consultant_assistant_dialog_go_icon.png
+0
-0
consultant_assistant_dialog_img.png
m-consultant/src/main/res/drawable-xhdpi/consultant_assistant_dialog_img.png
+0
-0
consultant_assistant_dialog_text_bg.xml
m-consultant/src/main/res/drawable/consultant_assistant_dialog_text_bg.xml
+13
-0
consultant_expert_consult_assistant_popup_window.xml
m-consultant/src/main/res/layout/consultant_expert_consult_assistant_popup_window.xml
+83
-6
No files found.
config.gradle
View file @
273439ed
ext
{
kotlin_version
=
"1.3.21"
dev_mode
=
fals
e
dev_mode
=
tru
e
ydl_app
=
[
appName
:
"心理咨询壹点灵"
,
...
...
m-audioim/src/main/java/com/ydl/audioim/AudioHomeActivity.kt
View file @
273439ed
...
...
@@ -162,6 +162,8 @@ class AudioHomeActivity : BaseMvpActivity<IAudioHomeActivityContract.View, IAudi
//频道管理器
private
var
channelManager
:
ChannelManager
?
=
null
private
var
isLeavelChannel
:
Boolean
=
false
private
var
isLeavelChannel
:
Boolean
=
false
...
...
m-consultant/src/main/java/com/yidianling/consultant/ExpertSearchActivity.kt
View file @
273439ed
...
...
@@ -227,11 +227,15 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
super
.
onScrollStateChanged
(
recyclerView
,
newState
)
hideSoftInput
()
if
(
newState
==
RecyclerView
.
SCROLL_STATE_DRAGGING
||
newState
==
RecyclerView
.
SCROLL_STATE_SETTLING
)
{
//滚动
ConsultAssistantDialogUtils
.
INSTANCE
.
hideAssistantActivity
()
sIsScrolling
=
true
if
(!
this
@ExpertSearchActivity
.
isFinishing
)
{
// GlideApp.with(this@ExpertSearchActivity).pauseRequests()
}
}
else
if
(
newState
==
RecyclerView
.
SCROLL_STATE_IDLE
)
{
//没有滚动
ConsultAssistantDialogUtils
.
INSTANCE
.
fitRequest
(
this
@ExpertSearchActivity
,
"doctor_list"
,
true
)
if
(
sIsScrolling
)
{
if
(!
this
@ExpertSearchActivity
.
isFinishing
)
{
// GlideApp.with(this@ExpertSearchActivity).resumeRequests()
...
...
@@ -1003,7 +1007,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
}
filterPopupWindow
.
isClippingEnabled
=
false
filterPopupWindow
.
showAtLocation
(
viewSep2
.
rootView
,
Gravity
.
TOP
+
Gravity
.
RIGHT
,
0
,
0
)
ConsultAssistantDialogUtils
.
INSTANCE
.
hide
()
ConsultAssistantDialogUtils
.
INSTANCE
.
hide
AssistantActivity
()
filterPopupWindow
.
onFilterConfirmListener
=
this
updateFilterTextViewStatus
(
tvFilter
,
FILTER_STATUS_OPEN
)
// viewDim.visibility = View.VISIBLE
...
...
m-consultant/src/main/java/com/yidianling/consultant/ExpertSearchFragment.kt
View file @
273439ed
...
...
@@ -180,8 +180,12 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
hideSoftInput
()
if
(
newState
==
RecyclerView
.
SCROLL_STATE_DRAGGING
||
newState
==
RecyclerView
.
SCROLL_STATE_SETTLING
)
{
sIsScrolling
=
true
//滚动
hideConsultAssistantDialog
()
}
else
if
(
newState
==
RecyclerView
.
SCROLL_STATE_IDLE
)
{
//没有滚动
showConsultAssistantDialog
()
if
(
sIsScrolling
)
{
}
...
...
m-consultant/src/main/java/com/yidianling/consultant/dialog/ConsultAssistantDialog.kt
View file @
273439ed
package
com.yidianling.consultant.dialog
import
android.animation.Animator
import
android.animation.ObjectAnimator
import
android.app.Dialog
import
android.content.Context
import
android.os.Bundle
import
android.os.Handler
import
android.view.Gravity
import
android.view.View
import
android.view.ViewTreeObserver
import
android.view.WindowManager
import
com.ydl.ydlcommon.utils.SharedPreferencesEditor
import
com.yidianling.consultant.R
import
com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils
import
kotlinx.android.synthetic.main.consultant_expert_consult_assistant_popup_window.*
/**
...
...
@@ -14,7 +21,13 @@ import kotlinx.android.synthetic.main.consultant_expert_consult_assistant_popup_
* Created by xj on 2019/10/30.
*/
class
ConsultAssistantDialog
(
context
:
Context
,
val
consultAssistantClickListener
:
OnConsultAssistantClickListener
?)
:
Dialog
(
context
,
R
.
style
.
consultant_expert_dialog_default_style
)
{
class
ConsultAssistantDialog
(
mContext
:
Context
,
val
consultAssistantClickListener
:
OnConsultAssistantClickListener
?
)
:
Dialog
(
mContext
,
R
.
style
.
consultant_expert_dialog_default_style
)
{
private
var
animate
:
ObjectAnimator
?
=
null
private
var
minWidth
:
Int
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
...
...
@@ -31,14 +44,82 @@ class ConsultAssistantDialog(context: Context, val consultAssistantClickListener
window
.
setWindowAnimations
(
R
.
style
.
consultant_expert_consult_assistant_dialog_animate
)
consult_assistant
.
setOnClickListener
{
if
(!
ConsultAssistantDialogUtils
.
INSTANCE
.
canShowDesc
())
{
consultant_assistant_dialog_desc_ll
.
visibility
=
View
.
GONE
consultant_assistant_dialog_desc_outside_ll
.
visibility
=
View
.
GONE
// refreshDialogLayout()
}
consultant_assistant_dialog_close
.
setOnClickListener
{
if
(
minWidth
==
null
)
{
minWidth
=
(
consultant_assistant
.
measuredWidth
*
1.5
).
toInt
()
}
//一个dialog关闭左侧desc,所有导医左侧desc都关闭
SharedPreferencesEditor
.
putString
(
ConsultAssistantDialogUtils
.
INSTANCE
.
ASSISTANT_DIALOG_SP_TAG
,
System
.
currentTimeMillis
().
toString
()
)
animate
=
ObjectAnimator
.
ofFloat
(
consultant_assistant_dialog_desc_ll
,
"translationX"
,
0.0f
,
consultant_assistant_dialog_desc_ll
.
measuredWidth
.
toFloat
()
)
animate
?.
setDuration
(
900
)
?.
start
()
animate
?.
addListener
(
object
:
Animator
.
AnimatorListener
{
override
fun
onAnimationRepeat
(
animation
:
Animator
?)
{
}
override
fun
onAnimationEnd
(
animation
:
Animator
?)
{
ConsultAssistantDialogUtils
.
INSTANCE
.
setDescHide
()
hide
()
// show()
Handler
().
postDelayed
({
show
()
},
10
)
}
override
fun
onAnimationCancel
(
animation
:
Animator
?)
{
}
override
fun
onAnimationStart
(
animation
:
Animator
?)
{
}
})
}
consultant_assistant
.
setOnClickListener
{
consultAssistantClickListener
?.
onClickAction
()
}
setCanceledOnTouchOutside
(
false
)
}
public
fun
setDescHide
()
{
if
(
null
!=
consultant_assistant_dialog_desc_ll
)
{
consultant_assistant_dialog_desc_ll
.
visibility
=
View
.
GONE
consultant_assistant_dialog_desc_outside_ll
.
visibility
=
View
.
GONE
refreshDialogLayout
()
}
}
// 刷新dialog布局,减小拦截点击区域
fun
refreshDialogLayout
()
{
val
params
=
window
.
attributes
if
(
minWidth
==
null
)
{
minWidth
=
(
consultant_assistant
.
measuredWidth
*
1.5
).
toInt
()
}
params
.
width
=
minWidth
!!
params
.
height
=
WindowManager
.
LayoutParams
.
WRAP_CONTENT
params
.
gravity
=
Gravity
.
RIGHT
+
Gravity
.
BOTTOM
params
.
verticalMargin
=
0.07f
params
.
horizontalMargin
=
0.01f
window
.
setWindowAnimations
(
0
)
window
.
attributes
=
params
}
interface
OnConsultAssistantClickListener
{
fun
onClickAction
()
//隐私设置
fun
onClickAction
()
}
}
\ No newline at end of file
m-consultant/src/main/java/com/yidianling/consultant/modular/singlton/ConsultAssistantDialogUtils.kt
View file @
273439ed
package
com.yidianling.consultant.modular.singlton
import
android.app.Activity
import
android.content.SharedPreferences
import
android.support.v7.app.AppCompatActivity
import
android.text.TextUtils
import
com.ydl.ydlcommon.utils.SharedPreferencesEditor
import
com.ydl.ydlcommon.utils.YdlBuryPointUtil
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.consultant.dialog.ConsultAssistantDialog
...
...
@@ -26,7 +29,7 @@ class ConsultAssistantDialogUtils private constructor() {
var
expertSearchPageHasShown
:
Boolean
=
false
// 专家咨询列表fragment页面是否已经展示
var
consultAssistantActivityDialog
:
ConsultAssistantDialog
?
=
null
//咨询师列表activity页面展示的dialog
var
expertSearchActivityPageHasShown
:
Boolean
=
false
// 专家咨询列表activity页面是否已经展示
var
timer
:
Timer
?
=
null
var
ASSISTANT_DIALOG_SP_TAG
=
"assistant_dialog_sp_tag"
// 是否展示左侧文本的缓存key
/**
...
...
@@ -55,20 +58,32 @@ class ConsultAssistantDialogUtils private constructor() {
/**
* 判断是否符合接口展示逻辑
*/
private
fun
shouldShowDialog
(
activity
:
Activity
,
origin
:
String
,
isDelay
:
Boolean
=
false
,
fromActivity
:
Boolean
=
false
)
{
private
fun
shouldShowDialog
(
activity
:
Activity
,
origin
:
String
,
fromActivity
:
Boolean
=
false
)
{
//todo xj打release包的时候需要打开
if
(
origin
==
"home_index"
)
{
showFromYdlHome
(
activity
)
}
else
if
(
origin
==
"doctor_list"
)
{
show
(
activity
,
fromActivity
)
}
// 请求接口判断导医咨询助理按钮是否展示
SearchApi
.
getSearchApi
().
getConsultAssistantRequest
(
origin
)
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
{
if
(
it
.
data
)
{
if
(
origin
==
"home_index"
)
{
showFromYdlHome
(
activity
)
}
else
if
(
origin
==
"doctor_list"
)
{
show
(
activity
,
fromActivity
)
}
}
}
//
SearchApi.getSearchApi().getConsultAssistantRequest(origin)
//
.subscribeOn(Schedulers.io())
//
.observeOn(AndroidSchedulers.mainThread())
//
.subscribe {
//
if (it.data) {
//
if (origin == "home_index") {
//
showFromYdlHome(activity)
//
} else if (origin == "doctor_list") {
//
show(activity, fromActivity)
//
}
//
}
//
}
}
////////////////////////////////////// 首页的展示隐藏逻辑 代码块start ///////////////////////////////////////////////////
...
...
@@ -80,15 +95,15 @@ class ConsultAssistantDialogUtils private constructor() {
if
(!
activity
.
isFinishing
)
{
if
(
consultAssistantDialogFromHomePage
==
null
)
{
consultAssistantDialogFromHomePage
=
ConsultAssistantDialog
(
activity
,
object
:
ConsultAssistantDialog
.
OnConsultAssistantClickListener
{
override
fun
onClickAction
()
{
//获取用户uid
YdlBuryPointUtil
.
sendClick
(
"home_page_assistant_click"
)
getConsultAssistantUid
(
activity
)
}
activity
,
object
:
ConsultAssistantDialog
.
OnConsultAssistantClickListener
{
override
fun
onClickAction
()
{
//获取用户uid
YdlBuryPointUtil
.
sendClick
(
"home_page_assistant_click"
)
getConsultAssistantUid
(
activity
)
}
})
})
}
consultAssistantDialogFromHomePage
?.
show
()
}
...
...
@@ -110,32 +125,16 @@ class ConsultAssistantDialogUtils private constructor() {
fun
show
(
activity
:
Activity
,
fromActivity
:
Boolean
=
false
)
{
// 来自于fragment咨询师列表
if
(!
fromActivity
)
{
if
(!
expertSearchPageHasShown
&&
timer
==
null
)
{
timer
=
Timer
()
timer
!!
.
schedule
(
object
:
TimerTask
()
{
override
fun
run
()
{
Observable
.
just
(
1
).
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
{
expertSearchPageHasShown
=
true
showDialog
(
activity
)
}
}
},
5000
)
if
(!
expertSearchPageHasShown
)
{
expertSearchPageHasShown
=
true
showDialog
(
activity
)
}
else
{
showDialog
(
activity
)
}
}
else
{
// 来自于activity咨询师列表
if
(!
expertSearchActivityPageHasShown
&&
timer
==
null
)
{
timer
=
Timer
()
timer
!!
.
schedule
(
object
:
TimerTask
()
{
override
fun
run
()
{
Observable
.
just
(
1
).
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
{
expertSearchActivityPageHasShown
=
true
showDialog
(
activity
,
true
)
}
}
},
5000
)
}
else
{
// 来自于activity咨询师列表
if
(!
expertSearchActivityPageHasShown
)
{
expertSearchActivityPageHasShown
=
true
showDialog
(
activity
,
true
)
}
else
{
showDialog
(
activity
,
true
)
}
...
...
@@ -150,41 +149,41 @@ class ConsultAssistantDialogUtils private constructor() {
if
(!
activity
.
isFinishing
)
{
if
(
consultAssistantFragmentDialog
==
null
)
{
consultAssistantFragmentDialog
=
ConsultAssistantDialog
(
activity
,
object
:
ConsultAssistantDialog
.
OnConsultAssistantClickListener
{
override
fun
onClickAction
()
{
YdlBuryPointUtil
.
sendClick
(
"assistant_list_click"
)
// 咨询师列表页面且未登录情况下,跳转登录页面
if
(!
ConsultantIn
.
isLogin
())
{
ConsultantIn
.
toLogin
(
activity
)
}
else
{
//获取用户uid
getConsultAssistantUid
(
activity
)
}
activity
,
object
:
ConsultAssistantDialog
.
OnConsultAssistantClickListener
{
override
fun
onClickAction
()
{
YdlBuryPointUtil
.
sendClick
(
"assistant_list_click"
)
// 咨询师列表页面且未登录情况下,跳转登录页面
if
(!
ConsultantIn
.
isLogin
())
{
ConsultantIn
.
toLogin
(
activity
)
}
else
{
//获取用户uid
getConsultAssistantUid
(
activity
)
}
}
})
})
}
consultAssistantFragmentDialog
?.
show
()
}
}
else
{
}
else
{
if
(!
activity
.
isFinishing
)
{
if
(
consultAssistantActivityDialog
==
null
)
{
consultAssistantActivityDialog
=
ConsultAssistantDialog
(
activity
,
object
:
ConsultAssistantDialog
.
OnConsultAssistantClickListener
{
override
fun
onClickAction
()
{
YdlBuryPointUtil
.
sendClick
(
"assistant_list_click"
)
// 咨询师列表页面且未登录情况下,跳转登录页面
if
(!
ConsultantIn
.
isLogin
())
{
ConsultantIn
.
toLogin
(
activity
)
}
else
{
//获取用户uid
getConsultAssistantUid
(
activity
)
}
activity
,
object
:
ConsultAssistantDialog
.
OnConsultAssistantClickListener
{
override
fun
onClickAction
()
{
YdlBuryPointUtil
.
sendClick
(
"assistant_list_click"
)
// 咨询师列表页面且未登录情况下,跳转登录页面
if
(!
ConsultantIn
.
isLogin
())
{
ConsultantIn
.
toLogin
(
activity
)
}
else
{
//获取用户uid
getConsultAssistantUid
(
activity
)
}
}
})
})
}
consultAssistantActivityDialog
?.
show
()
}
...
...
@@ -193,13 +192,20 @@ class ConsultAssistantDialogUtils private constructor() {
/**
* 咨询师列表页隐藏
* 咨询师列表页
Fragment
隐藏
*/
fun
hide
()
{
consultAssistantFragmentDialog
?.
hide
()
}
/**
* 咨询师列表页Fragment隐藏
*/
fun
hideAssistantActivity
()
{
consultAssistantActivityDialog
?.
hide
()
}
/**
* 释放本单例所有资源(咨询师列表fragmnet在MainActivity,
* 且在MainActivity销毁的时候,会先执行咨询师列表fragmnet
* 的ondeatroy,所以这边直接在该专家咨询列表碎片执行该方法)
...
...
@@ -208,8 +214,7 @@ class ConsultAssistantDialogUtils private constructor() {
consultAssistantDialogFromHomePage
?.
dismiss
()
consultAssistantFragmentDialog
?.
dismiss
()
consultAssistantActivityDialog
?.
dismiss
()
timer
?.
cancel
()
timer
=
null
expertSearchPageHasShown
=
false
expertSearchActivityPageHasShown
=
false
consultAssistantDialogFromHomePage
=
null
...
...
@@ -222,8 +227,7 @@ class ConsultAssistantDialogUtils private constructor() {
*/
fun
expertSearchResetStatus
()
{
consultAssistantActivityDialog
?.
dismiss
()
timer
?.
cancel
()
timer
=
null
expertSearchActivityPageHasShown
=
false
consultAssistantActivityDialog
=
null
}
...
...
@@ -243,4 +247,23 @@ class ConsultAssistantDialogUtils private constructor() {
}
}
}
// 判定是否展示左侧的描述文本
fun
canShowDesc
():
Boolean
{
if
(
TextUtils
.
isEmpty
(
SharedPreferencesEditor
.
getString
(
ASSISTANT_DIALOG_SP_TAG
)))
{
//如果没有缓存,则展示
return
true
//todo xj 把时间从20秒改为一天
}
else
if
(
System
.
currentTimeMillis
()
-
SharedPreferencesEditor
.
getString
(
ASSISTANT_DIALOG_SP_TAG
).
toLong
()
>
20
*
1000
)
{
//如果缓存时间超过一天,则展示
return
true
}
return
false
}
fun
setDescHide
()
{
consultAssistantDialogFromHomePage
?.
setDescHide
()
consultAssistantActivityDialog
?.
setDescHide
()
consultAssistantFragmentDialog
?.
setDescHide
()
}
}
\ No newline at end of file
m-consultant/src/main/res/drawable-xhdpi/consultant_assistant_dialog_close_icon.png
0 → 100644
View file @
273439ed
471 Bytes
m-consultant/src/main/res/drawable-xhdpi/consultant_assistant_dialog_go_icon.png
0 → 100644
View file @
273439ed
420 Bytes
m-consultant/src/main/res/drawable-xhdpi/consultant_assistant_dialog_img.png
0 → 100644
View file @
273439ed
41.5 KB
m-consultant/src/main/res/drawable/consultant_assistant_dialog_text_bg.xml
0 → 100644
View file @
273439ed
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:shape=
"rectangle"
>
<corners
android:topLeftRadius=
"22dp"
android:bottomLeftRadius=
"22dp"
/>
<gradient
android:angle=
"0"
android:startColor=
"#DDFF7A5C"
android:endColor=
"#DDFF406C"
/>
</shape>
\ No newline at end of file
m-consultant/src/main/res/layout/consultant_expert_consult_assistant_popup_window.xml
View file @
273439ed
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:
paddingBottom=
"60dp
"
android:layout_width=
"wrap_content"
android:
layout_height=
"wrap_content
"
android:paddingRight=
"11dp"
>
<LinearLayout
android:id=
"@+id/consultant_assistant_dialog_desc_outside_ll"
android:layout_width=
"wrap_content"
android:layout_height=
"84dp"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:layout_marginRight=
"25dp"
android:clipChildren=
"true"
android:gravity=
"center"
android:orientation=
"horizontal"
android:paddingRight=
"25dp"
android:paddingBottom=
"40dp"
>
<LinearLayout
android:id=
"@+id/consultant_assistant_dialog_desc_ll"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:background=
"@drawable/consultant_assistant_dialog_text_bg"
android:gravity=
"center"
>
<ImageView
android:id=
"@+id/consultant_assistant_dialog_close"
android:layout_width=
"35dp"
android:layout_height=
"30dp"
android:paddingLeft=
"15dp"
android:paddingTop=
"10dp"
android:paddingRight=
"10dp"
android:paddingBottom=
"10dp"
android:src=
"@drawable/consultant_assistant_dialog_close_icon"
/>
<View
android:layout_width=
"0.5dp"
android:layout_height=
"26dp"
android:layout_marginRight=
"8dp"
android:background=
"#ffffff"
/>
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginRight=
"15dp"
android:orientation=
"vertical"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"不知道如何选择?"
android:textColor=
"#ffffff"
android:textSize=
"12dp"
/>
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:gravity=
"center"
android:orientation=
"horizontal"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"为你精准匹配咨询师 "
android:textColor=
"#ffffff"
android:textSize=
"12dp"
/>
<ImageView
android:layout_width=
"10dp"
android:layout_height=
"10dp"
android:src=
"@drawable/consultant_assistant_dialog_go_icon"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<ImageView
android:id=
"@+id/consult_assistant"
android:layout_width=
"66dp"
android:layout_height=
"68dp"
android:id=
"@+id/consultant_assistant"
android:layout_width=
"61dp"
android:layout_height=
"101dp"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:scaleType=
"centerCrop"
android:src=
"@drawable/consultant_expert_consult_assistant_img"
/>
android:src=
"@drawable/consultant_assistant_dialog_img"
android:paddingBottom=
"40dp"
/>
</RelativeLayout>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment