取消状态隐藏三个框

打分方块的离场动画
评分失败后可以重试
网络接口注释
This commit is contained in:
yangyakun
2022-05-18 15:03:40 +08:00
parent 104017f775
commit 3195be09e9
13 changed files with 351 additions and 54 deletions

View File

@@ -42,6 +42,7 @@ import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerControllerStatusCal
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerNaviChangedCallback; import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerNaviChangedCallback;
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback; import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback;
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonCallback; import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonCallback;
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonValueCallback;
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerVeloctityCallback; import com.mogo.och.taxi.passenger.callback.ITaxiPassengerVeloctityCallback;
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst; import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst;
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum; import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum;
@@ -701,7 +702,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
}); });
} }
public void arrivedAndScore(int score,ITaxiPassengerCommonCallback commonCallback) { public void arrivedAndScore(int score, ITaxiPassengerCommonValueCallback<Boolean> commonCallback) {
if (mCurrentOCHOrder == null) return; if (mCurrentOCHOrder == null) return;
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "--route--- checkPhoneAndUpdateStatus"); CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "--route--- checkPhoneAndUpdateStatus");
TaxiPassengerServiceManager.getInstance().arrivedAndScore(mContext,mCurrentOCHOrder.orderNo, TaxiPassengerServiceManager.getInstance().arrivedAndScore(mContext,mCurrentOCHOrder.orderNo,
@@ -710,13 +711,24 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
public void onSuccess(TaxiPassengerBaseRespBean data) { public void onSuccess(TaxiPassengerBaseRespBean data) {
ToastUtils.showLong("评分成功"); ToastUtils.showLong("评分成功");
if(commonCallback!=null) { if(commonCallback!=null) {
commonCallback.onCommonCallback(); commonCallback.onCommonCallback(true);
}
}
@Override
public void onError() {
ToastUtils.showLong("网络错误请稍后再试");
if(commonCallback!=null) {
commonCallback.onCommonCallback(false);
} }
} }
@Override @Override
public void onFail(int code, String msg) { public void onFail(int code, String msg) {
ToastUtils.showLong(msg); ToastUtils.showLong(msg);
if(commonCallback!=null) {
commonCallback.onCommonCallback(false);
}
} }
}); });
} }

View File

@@ -68,7 +68,7 @@ interface TaxiPassengerServiceApi {
Observable<TaxiPassengerQueryOrderRouteResp> queryOrderRoute(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("orderNo") String orderNo); Observable<TaxiPassengerQueryOrderRouteResp> queryOrderRoute(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("orderNo") String orderNo);
/** /**
* 通过orderNo查询订单信息用于本地已经有orderNo时 * 提交用户输入的手机后4位、并进行状态扭转
* @param data * @param data
* @return * @return
*/ */
@@ -77,7 +77,7 @@ interface TaxiPassengerServiceApi {
Observable<TaxiPassengerBaseRespBean> checkPhoneAndUpdateOrderStatus(@Header ("appId") String appId, @Header("ticket") String ticket, @Body TaxiPassengerCheckPhoneUpdateOrderReqBean data); Observable<TaxiPassengerBaseRespBean> checkPhoneAndUpdateOrderStatus(@Header ("appId") String appId, @Header("ticket") String ticket, @Body TaxiPassengerCheckPhoneUpdateOrderReqBean data);
/** /**
* 通过orderNo查询订单信息用于本地已经有orderNo时 * 对订单进行打分 1-5分
* @param data * @param data
* @return * @return
*/ */

View File

@@ -19,6 +19,7 @@ import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerADASStatusCallback;
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerControllerStatusCallback; import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerControllerStatusCallback;
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback; import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback;
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonCallback; import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonCallback;
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonValueCallback;
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum; import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum;
import com.mogo.och.taxi.passenger.model.TaxiPassengerGeocodeSearchModel; import com.mogo.och.taxi.passenger.model.TaxiPassengerGeocodeSearchModel;
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel; import com.mogo.och.taxi.passenger.model.TaxiPassengerModel;
@@ -145,7 +146,12 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
private void updateOrderView(TaxiPassengerOrderQueryRespBean.Result order) { private void updateOrderView(TaxiPassengerOrderQueryRespBean.Result order) {
CallerLogger.INSTANCE.d(M_TAXI_P+TAG,"updateOrderView = "+order.orderStatus); CallerLogger.INSTANCE.d(M_TAXI_P+TAG,"updateOrderView = "+order.orderStatus);
if (TaxiPassengerOrderStatusEnum.Cancel.getCode() == order.orderStatus){ if (TaxiPassengerOrderStatusEnum.Cancel.getCode() == order.orderStatus){
runOnUIThread(() -> mView.showOrHideServingOrderFragment(false)); runOnUIThread(() -> {
mView.showOrHideServingOrderFragment(false);
mView.showOrHidePressengerCheckPager(false, "",
"", "", "", "");
mView.showOrHideArrivedEndLayout(false,"");
});
TaxiPassengerModel.getInstance().recoverNaviInfo(); TaxiPassengerModel.getInstance().recoverNaviInfo();
TaxiPassengerGeocodeSearchModel.getInstance(getContext()).destroyGeocodeSearch(); TaxiPassengerGeocodeSearchModel.getInstance(getContext()).destroyGeocodeSearch();
return; return;
@@ -196,10 +202,11 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
* @param score 分数 * @param score 分数
*/ */
public void arrivedAndScore(int score){ public void arrivedAndScore(int score){
TaxiPassengerModel.getInstance().arrivedAndScore(score, new ITaxiPassengerCommonCallback() { TaxiPassengerModel.getInstance().arrivedAndScore(score, new ITaxiPassengerCommonValueCallback<Boolean>() {
@Override @Override
public void onCommonCallback() { public void onCommonCallback(Boolean aBoolean) {
mView.showOrHideArrivedEndLayout(false,""); mView.showArrivedEndLayout2Thank(aBoolean);
} }
}); });
} }

View File

@@ -1,15 +1,18 @@
package com.mogo.och.taxi.passenger.ui package com.mogo.och.taxi.passenger.ui
import android.animation.*
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.animation.Animation
import android.view.animation.AnimationUtils import android.view.animation.AnimationUtils
import android.widget.ImageView
import android.widget.RelativeLayout import android.widget.RelativeLayout
import android.widget.TextView import android.widget.TextView
import com.amap.api.navi.view.PoiInputSearchWidget
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.OverlayViewUtils
import com.mogo.och.common.module.wigets.OCHBorderShadowLayout import com.mogo.och.common.module.wigets.OCHBorderShadowLayout
import com.mogo.och.taxi.passenger.R import com.mogo.och.taxi.passenger.R
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonValueCallback import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonValueCallback
@@ -29,6 +32,181 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes) constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
private lateinit var mArrivedEndStation: TextView
private lateinit var tvFeel: TextView
private lateinit var ochShadowLayout: OCHBorderShadowLayout
private lateinit var ochThankShadowLayout: OCHBorderShadowLayout
private lateinit var ivStarFirst: ImageView
private lateinit var ivStarSecond: ImageView
private lateinit var ivStarThird: ImageView
private lateinit var ivStarFourth: ImageView
private lateinit var ivStarFifth: ImageView
var taxiPassengerCommonValueCallback: ITaxiPassengerCommonValueCallback<Int>?=null
var trAnimation: Animation = AnimationUtils.loadAnimation(
context, R.anim.left_to_right
)
var troutAnimation: Animation = AnimationUtils.loadAnimation(
context, R.anim.right_to_left
)
var alphaAnimation: Animation = AnimationUtils.loadAnimation(
context, R.anim.alpha_hide_show
)
private var allStartOrdered = mutableListOf<ImageView>()
private fun initView(context: Context) {
d(SceneConstant.M_TAXI_P + TAG, "initView")
LayoutInflater.from(context).inflate(R.layout.taxi_p_arrived_end_panel, this, true)
mArrivedEndStation = findViewById(R.id.arrived_end_station)
tvFeel = findViewById(R.id.tv_feel)
ochShadowLayout = findViewById(R.id.och_shadow_layout)
ochThankShadowLayout = findViewById(R.id.och_thank_shadow_layout)
allStartOrdered = mutableListOf<ImageView>()
initScore()
findViewById<View>(R.id.tv_please_score).setOnClickListener(this)
// debug 弹出
mArrivedEndStation.setOnLongClickListener {
showThanksPageWithAnimation(true)
false
}
}
private fun initScore() {
ivStarFirst = findViewById(R.id.iv_star_first)
ivStarSecond = findViewById(R.id.iv_star_second)
ivStarThird = findViewById(R.id.iv_star_third)
ivStarFourth = findViewById(R.id.iv_star_fourth)
ivStarFifth = findViewById(R.id.iv_star_fifth)
ivStarFirst.setOnClickListener(this)
ivStarSecond.setOnClickListener(this)
ivStarThird.setOnClickListener(this)
ivStarFourth.setOnClickListener(this)
ivStarFifth.setOnClickListener(this)
allStartOrdered.add(ivStarFirst)
allStartOrdered.add(ivStarSecond)
allStartOrdered.add(ivStarThird)
allStartOrdered.add(ivStarFourth)
allStartOrdered.add(ivStarFifth)
}
override fun onClick(v: View?) {
when (v?.id) {
R.id.tv_please_score -> {
taxiPassengerCommonValueCallback?.onCommonCallback(2)
}
R.id.iv_star_first -> {commitAndStartAnimation(1,"不满意")}
R.id.iv_star_second -> {commitAndStartAnimation(2,"不满意")}
R.id.iv_star_third -> {commitAndStartAnimation(3,"一般")}
R.id.iv_star_fourth -> {commitAndStartAnimation(4,"舒适")}
R.id.iv_star_fifth -> {commitAndStartAnimation(5,"舒适")}
else -> {}
}
}
private fun commitAndStartAnimation(fraction: Int,title:String) {
tvFeel.text = title
startStartAnimation(fraction)
allStartOrdered.forEach {
it.isEnabled = false
}
}
private var currentAnimarion = 0
private var maxIndex = 0
private fun startStartAnimation(fraction: Int) {
currentAnimarion = 0
maxIndex = fraction-1
try {
animation(fraction)
} catch (e: Exception) {
e.printStackTrace()
}
}
private fun animation(fraction: Int) {
val showView = allStartOrdered[currentAnimarion]
showView.setImageResource(R.drawable.taxi_p_passenger_star_check)
val alpha = ObjectAnimator.ofFloat(showView, "alpha", 0.1f, 1f)
.setDuration(120)
alpha.addUpdateListener(object : ValueAnimator.AnimatorUpdateListener{
var isStart = false
override fun onAnimationUpdate(animation: ValueAnimator?) {
val animatedValue = animation?.getAnimatedValue("alpha")
animatedValue as Float
if(animatedValue>0.45&&!isStart){
isStart = true
//开始下一个
if(currentAnimarion==maxIndex){
return
}
currentAnimarion++
animation(fraction)
}
}
})
val keyframe1 = Keyframe.ofFloat(0f,1f)
val keyframe3 = Keyframe.ofFloat(0.9f,1.2f)
val keyframe4 = Keyframe.ofFloat(1f,1f)
val holderX = PropertyValuesHolder.ofKeyframe(
"scaleX", keyframe1, keyframe3, keyframe4
)
val holderY = PropertyValuesHolder.ofKeyframe(
"scaleY", keyframe1, keyframe3, keyframe4
)
val scaleX = ObjectAnimator.ofPropertyValuesHolder(showView, holderX).setDuration(240)
val scaleY = ObjectAnimator.ofPropertyValuesHolder(showView, holderY).setDuration(240)
val set = AnimatorSet()
set.play(scaleX).with(scaleY).with(alpha)
if(currentAnimarion==maxIndex) {
// 最后一个动画结束后提交积分
set.addListener(object : AnimatorListenerAdapter() {
override fun onAnimationEnd(animation: Animator?) {
super.onAnimationEnd(animation)
taxiPassengerCommonValueCallback?.onCommonCallback(fraction)
}
})
}
set.start()
}
fun setDataAndStartAnimation(endSiteAddr: String?) {
mArrivedEndStation.text = endSiteAddr
ochShadowLayout.startAnimation(trAnimation)
allStartOrdered.forEach {
it.setImageResource(R.drawable.taxi_p_passenger_star)
it.isEnabled = true
}
}
fun showThanksPageWithAnimation(isSuccess:Boolean) {
if(!isSuccess){
tvFeel.text = ""
allStartOrdered.forEach {
it.setImageResource(R.drawable.taxi_p_passenger_star)
it.isEnabled = true
}
return
}
troutAnimation.setAnimationListener(object :PoiInputSearchWidget.AnimationListenerAdapter(){
override fun onAnimationEnd(p0: Animation?) {
ochShadowLayout.visibility = View.GONE
ochThankShadowLayout.startAnimation(alphaAnimation)
ochThankShadowLayout.visibility = View.VISIBLE
}
})
ochShadowLayout.startAnimation(troutAnimation)
}
companion object { companion object {
const val TAG = "TaxiPassengerArrivedView" const val TAG = "TaxiPassengerArrivedView"
} }
@@ -40,39 +218,5 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
e.printStackTrace() e.printStackTrace()
} }
} }
private lateinit var mArrivedEndStation: TextView
private lateinit var ochShadowLayout: OCHBorderShadowLayout
var taxiPassengerCommonValueCallback: ITaxiPassengerCommonValueCallback<Int>?=null
var trAnimation = AnimationUtils.loadAnimation(
context, R.anim.left_to_right
)
private fun initView(context: Context) {
d(SceneConstant.M_TAXI_P + TAG, "initView")
LayoutInflater.from(context).inflate(R.layout.taxi_p_arrived_end_panel, this, true)
mArrivedEndStation = findViewById(R.id.arrived_end_station)
ochShadowLayout = findViewById(R.id.och_shadow_layout)
findViewById<View>(R.id.tv_please_score).setOnClickListener(this)
findViewById<View>(R.id.arrived_end_station_title).setOnLongClickListener {
OverlayViewUtils.dismissOverlayView(this)
false
}
}
override fun onClick(v: View?) {
when (v?.id) {
R.id.tv_taxi_passenger_number_one -> {
taxiPassengerCommonValueCallback?.onCommonCallback(2)
}
else -> {}
}
}
fun setDataAndStartAnimation(endSiteAddr: String?) {
mArrivedEndStation.text = endSiteAddr
ochShadowLayout.startAnimation(trAnimation)
}
} }

View File

@@ -2,13 +2,9 @@ package com.mogo.och.taxi.passenger.ui;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
@@ -27,7 +23,6 @@ import com.mogo.map.uicontroller.VisualAngleMode;
import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.constants.DataTypes; import com.mogo.module.common.constants.DataTypes;
import com.mogo.och.taxi.passenger.R; import com.mogo.och.taxi.passenger.R;
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonValueCallback;
import com.mogo.och.taxi.passenger.presenter.BaseTaxiPassengerPresenter; import com.mogo.och.taxi.passenger.presenter.BaseTaxiPassengerPresenter;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
@@ -305,4 +300,11 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
e.printStackTrace(); e.printStackTrace();
} }
} }
public void showArrivedEndLayout2Thank(boolean isSuccess) {
if(mArrivedEndView.get()==null){
initArrivedView();
}
mArrivedEndView.get().showThanksPageWithAnimation(isSuccess);
}
} }

View File

@@ -85,10 +85,6 @@ class TaxiPassengerCheckView :RelativeLayout, View.OnClickListener {
tvTaxiPassengerNumberThird.setOnClickListener(this) tvTaxiPassengerNumberThird.setOnClickListener(this)
tvTaxiPassengerNumberFourth.setOnClickListener(this) tvTaxiPassengerNumberFourth.setOnClickListener(this)
findViewById<TextView>(R.id.tv_hello).setOnLongClickListener {
OverlayViewUtils.dismissOverlayView(this)
false
}
} }
override fun onClick(v: View?) { override fun onClick(v: View?) {

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:startOffset="500" >
<translate
android:duration="1000"
android:fromXDelta="0"
android:toXDelta="-110%"/>
</set>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -102,8 +102,139 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"/> android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/iv_star_first"
android:layout_marginTop="@dimen/dp_44"
android:layout_marginStart="@dimen/dp_34"
app:layout_constraintTop_toBottomOf="@+id/tv_please_score"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/iv_star_second"
android:src="@drawable/taxi_p_passenger_star"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/iv_star_second"
app:layout_constraintTop_toTopOf="@+id/iv_star_first"
app:layout_constraintStart_toEndOf="@+id/iv_star_first"
app:layout_constraintEnd_toStartOf="@+id/iv_star_third"
android:src="@drawable/taxi_p_passenger_star"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/iv_star_third"
app:layout_constraintTop_toTopOf="@+id/iv_star_second"
app:layout_constraintStart_toEndOf="@+id/iv_star_second"
app:layout_constraintEnd_toStartOf="@+id/iv_star_fourth"
android:src="@drawable/taxi_p_passenger_star"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/iv_star_fourth"
app:layout_constraintTop_toTopOf="@+id/iv_star_third"
app:layout_constraintStart_toEndOf="@+id/iv_star_third"
app:layout_constraintEnd_toStartOf="@+id/iv_star_fifth"
android:src="@drawable/taxi_p_passenger_star"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/iv_star_fifth"
app:layout_constraintTop_toTopOf="@+id/iv_star_fourth"
app:layout_constraintStart_toEndOf="@+id/iv_star_fourth"
android:src="@drawable/taxi_p_passenger_star"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/iv_star_hide"
app:layout_constraintTop_toTopOf="@+id/iv_star_fourth"
app:layout_constraintStart_toEndOf="@+id/iv_star_fourth"
android:src="@drawable/taxi_p_passenger_star"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/tv_feel"
app:layout_constraintTop_toTopOf="@+id/iv_star_hide"
app:layout_constraintBottom_toBottomOf="@+id/iv_star_hide"
app:layout_constraintStart_toEndOf="@+id/iv_star_fifth"
android:textColor="#FFD868"
android:textSize="46px"
tools:text="太差了"
android:layout_marginStart="@dimen/dp_35"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</com.mogo.och.common.module.wigets.OCHBorderShadowLayout> </com.mogo.och.common.module.wigets.OCHBorderShadowLayout>
<com.mogo.och.common.module.wigets.OCHBorderShadowLayout
android:id="@+id/och_thank_shadow_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_109"
android:layout_marginBottom="@dimen/dp_110"
app:bgColor="@color/taxi_p_map_bg"
app:blurRadius="@dimen/dp_60"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:shadowColor="#80000000"
app:shadowRadius="60px"
android:visibility="gone"
app:shadow_position="outer"
app:xOffset="0px"
app:yOffset="0px">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/dp_867"
android:layout_height="@dimen/dp_300"
app:layout_constraintBottom_toBottomOf="parent"
android:background="@drawable/bg_taxi_p_arrived_info"
app:layout_constraintStart_toStartOf="parent">
<ImageView
app:layout_constraintTop_toTopOf="parent"
android:src="@drawable/taxi_p_arrived_end_light"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<ImageView
app:layout_constraintBottom_toBottomOf="parent"
android:src="@drawable/taxi_p_arrived_end_light"
app:layout_constraintStart_toStartOf="parent"
android:rotation="180"
app:layout_constraintEnd_toEndOf="parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/tv_thank_you"
app:layout_constraintStart_toStartOf="@+id/tv_seeyou_next_time"
app:layout_constraintBottom_toTopOf="@+id/tv_seeyou_next_time"
android:text="感谢您的反馈"
android:textColor="@android:color/white"
android:layout_marginBottom="@dimen/dp_21"
android:textSize="@dimen/dp_46"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/tv_seeyou_next_time"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="@dimen/dp_63"
android:layout_marginBottom="@dimen/dp_74"
android:text="期待与您下次相遇!"
android:textColor="@android:color/white"
android:textSize="@dimen/dp_56"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.mogo.och.common.module.wigets.OCHBorderShadowLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -6,8 +6,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@drawable/taxi_p_passenger_check_panel_bg" android:background="@drawable/taxi_p_passenger_check_panel_bg"
android:clickable="true"
android:focusable="true"
tools:ignore="MissingDefaultResource"> tools:ignore="MissingDefaultResource">
<ImageView <ImageView