app/src/main/java/com/tejia/lijin/app/ShoppingApi.java
@@ -1765,6 +1765,17 @@ commonPostWithFailture(context, BASE_URL2 + "pdd/getAuthJumpInfo", params, handler); } //拼多多是否已经授权 public static void isPDDAuthed(Context context, String uid, boolean buy, BasicTextHttpResponseHandler handler) { if (!LoginAndInviteStatusUtil.acessNext(context, uid, true)) return; LinkedHashMap<String, String> params = new LinkedHashMap<>(); params.put("uid", uid); params.put("type", (buy ? 1 : 2) + ""); commonPostWithFailture(context, BASE_URL2 + "pdd/isAuth", params, handler); } /** * 获取详情图文信息 app/src/main/java/com/tejia/lijin/app/entity/goods/GoodsDetailInfo.java
New file @@ -0,0 +1,89 @@ package com.tejia.lijin.app.entity.goods; import java.util.List; public class GoodsDetailInfo { public static class HongBaoInfo { private int type; private String hongBaoMoney; private String hongBaoDesc; private String desc; private String finalMoney; private List<PriceInfo> priceInfoList; public int getType() { return type; } public void setType(int type) { this.type = type; } public String getHongBaoMoney() { return hongBaoMoney; } public void setHongBaoMoney(String hongBaoMoney) { this.hongBaoMoney = hongBaoMoney; } public String getHongBaoDesc() { return hongBaoDesc; } public void setHongBaoDesc(String hongBaoDesc) { this.hongBaoDesc = hongBaoDesc; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String getFinalMoney() { return finalMoney; } public void setFinalMoney(String finalMoney) { this.finalMoney = finalMoney; } public List<PriceInfo> getPriceInfoList() { return priceInfoList; } public void setPriceInfoList(List<PriceInfo> priceInfoList) { this.priceInfoList = priceInfoList; } } public static class PriceInfo { private String priceName; private String money; public String getPriceName() { return priceName; } public void setPriceName(String priceName) { this.priceName = priceName; } public String getMoney() { return money; } public void setMoney(String money) { this.money = money; } } } app/src/main/java/com/tejia/lijin/app/ui/goods/GoodsDetailHongBaoListAdapter.java
New file @@ -0,0 +1,231 @@ package com.tejia.lijin.app.ui.goods; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.GradientDrawable; import android.text.Spannable; import android.text.SpannableString; import android.text.SpannedString; import android.text.style.RelativeSizeSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.androidquery.AQuery; import com.tejia.lijin.app.R; import com.tejia.lijin.app.entity.goods.GoodsDetailInfo; import com.wpc.library.util.common.DimenUtils; import com.wpc.library.util.common.StringUtils; import java.util.List; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; public class GoodsDetailHongBaoListAdapter extends RecyclerView.Adapter { private Context mContext; private List<GoodsDetailInfo.HongBaoInfo> mList; private boolean simpleMode; public GoodsDetailHongBaoListAdapter(Context context, List<GoodsDetailInfo.HongBaoInfo> list, boolean simpleMode) { this.mContext = context; this.mList = list; this.simpleMode = simpleMode; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new ViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_goods_detail_hongbao, null)); } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { GoodsDetailInfo.HongBaoInfo hongBaoInfo = mList.get(position); final ViewHolder viewHolder = (ViewHolder) holder; viewHolder.tv_more.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (viewHolder.ll_hongbao_detail.getVisibility() == View.VISIBLE) viewHolder.ll_hongbao_detail.setVisibility(View.GONE); else { viewHolder.ll_hongbao_detail.setVisibility(View.VISIBLE); viewHolder.tv_more.setVisibility(View.GONE); } } }); boolean fanli = false; //初始化View显示 setShowMode(viewHolder, fanli, simpleMode); //设置红包详情 setHongBaoDetailInfo(viewHolder, hongBaoInfo); //设置资金 SpannableString hbMoney = new SpannableString(hongBaoInfo.getHongBaoMoney()); hbMoney.setSpan(new RelativeSizeSpan(1.5f), 1, (hongBaoInfo.getFinalMoney().indexOf(".") > -1 ? hongBaoInfo.getFinalMoney().indexOf(".") : hongBaoInfo.getFinalMoney().length()), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); viewHolder.tv_sub_money.setText(hbMoney); viewHolder.tv_sub_money.setCompoundDrawablePadding(DimenUtils.dip2px(mContext, 8)); if (fanli) { viewHolder.tv_sub_money.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_goods_detail_hongbao_fanli, 0, 0, 0); } else { viewHolder.tv_sub_money.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_goods_detail_hongbao_hb, 0, 0, 0); } SpannableString finalMoney = new SpannableString(hongBaoInfo.getFinalMoney()); finalMoney.setSpan(new RelativeSizeSpan(1.77f), 1, (hongBaoInfo.getFinalMoney().indexOf(".") > -1 ? hongBaoInfo.getFinalMoney().indexOf(".") : hongBaoInfo.getFinalMoney().length()), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); viewHolder.tv_actual_money.setText(finalMoney); //简介 if (StringUtils.isNullOrEmpty(hongBaoInfo.getDesc())) { viewHolder.tv_desc.setText(""); } else { viewHolder.tv_desc.setText(hongBaoInfo.getDesc()); } } /** * @param fanli 是否返利 * @param simple 是否为简单模式 */ private void setShowMode(ViewHolder viewHolder, boolean fanli, boolean simple) { GradientDrawable moreBg = new GradientDrawable(); moreBg.setCornerRadius(DimenUtils.dip2px(mContext, 5)); if (fanli) { viewHolder.fl_main.setBackgroundResource(R.drawable.shape_goods_detail_hongbao_bg); viewHolder.ll_hongbao_detail.setBackgroundResource(R.drawable.ic_goods_detail_hongbao_detail_fanli); moreBg.setColor(Color.parseColor("#35A30E")); viewHolder.tv_more.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.icon_goods_detail_hongbao_fanli_more, 0, 0); } else { viewHolder.fl_main.setBackgroundResource(R.drawable.shape_goods_detail_hongbao_high_level_bg); viewHolder.ll_hongbao_detail.setBackgroundResource(R.drawable.ic_goods_detail_hongbao_detail_hb); moreBg.setColor(Color.parseColor("#EC1F3F")); viewHolder.tv_more.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.icon_goods_detail_hongbao_hb_more, 0, 0); } viewHolder.tv_more.setBackground(moreBg); if (simple) { viewHolder.ll_level_info.setVisibility(View.GONE); viewHolder.tv_more.setVisibility(View.GONE); viewHolder.tv_desc.setVisibility(View.GONE); } else { viewHolder.ll_level_info.setVisibility(View.VISIBLE); viewHolder.tv_more.setVisibility(View.VISIBLE); viewHolder.tv_desc.setVisibility(View.VISIBLE); } } private void setHongBaoDetailInfo(ViewHolder viewHolder, GoodsDetailInfo.HongBaoInfo hongBaoInfo) { //隐藏超出的资金项目 for (int i = hongBaoInfo.getPriceInfoList().size(); i < 4; i++) { int viewId = mContext.getResources().getIdentifier( "ll_money_" + i, "id", mContext.getPackageName()); if (viewHolder.fl_main.findViewById(viewId) != null) viewHolder.fl_main.findViewById(viewId).setVisibility(View.GONE); } for (int i = hongBaoInfo.getPriceInfoList().size() - 1; i < 3; i++) { int viewId = mContext.getResources().getIdentifier( "v_hongbao_cut_" + i, "id", mContext.getPackageName()); if (viewHolder.fl_main.findViewById(viewId) != null) viewHolder.fl_main.findViewById(viewId).setVisibility(View.GONE); } for (int i = 0; i < hongBaoInfo.getPriceInfoList().size(); i++) { viewHolder.tv_money_names[i].setText(hongBaoInfo.getPriceInfoList().get(i).getPriceName()); viewHolder.tv_moneys[i].setText(hongBaoInfo.getPriceInfoList().get(i).getMoney()); } } @Override public int getItemCount() { return 0; } class ViewHolder extends RecyclerView.ViewHolder { FrameLayout fl_main; TextView tv_sub_money; TextView tv_sub_money_desc; TextView tv_final_money; TextView tv_more; TextView tv_desc; //价格详情 LinearLayout ll_hongbao_detail; LinearLayout ll_money_0, ll_money_1, ll_money_2, ll_money_3; TextView[] tv_money_names; TextView[] tv_moneys; View v_hongbao_cut_0, v_hongbao_cut_1, v_hongbao_cut_2; //到手价 TextView tv_actual_money; LinearLayout ll_level_info; ImageView iv_level; TextView tv_level_desc; public ViewHolder(@NonNull View itemView) { super(itemView); fl_main = itemView.findViewById(R.id.fl_main); tv_sub_money = itemView.findViewById(R.id.tv_sub_money); tv_sub_money_desc = itemView.findViewById(R.id.tv_sub_money_desc); tv_final_money = itemView.findViewById(R.id.tv_final_money); tv_more = itemView.findViewById(R.id.tv_more); tv_desc = itemView.findViewById(R.id.tv_desc); ll_hongbao_detail = itemView.findViewById(R.id.ll_hongbao_detail); ll_money_0 = itemView.findViewById(R.id.ll_money_0); ll_money_1 = itemView.findViewById(R.id.ll_money_1); ll_money_2 = itemView.findViewById(R.id.ll_money_2); ll_money_3 = itemView.findViewById(R.id.ll_money_3); tv_moneys = new TextView[]{itemView.findViewById(R.id.tv_money_0), itemView.findViewById(R.id.tv_money_1), itemView.findViewById(R.id.tv_money_2), itemView.findViewById(R.id.tv_money_3)}; tv_money_names = new TextView[]{itemView.findViewById(R.id.tv_money_name_0), itemView.findViewById(R.id.tv_money_name_1), itemView.findViewById(R.id.tv_money_name_2), itemView.findViewById(R.id.tv_money_name_3)}; v_hongbao_cut_0 = itemView.findViewById(R.id.v_hongbao_cut_0); v_hongbao_cut_1 = itemView.findViewById(R.id.v_hongbao_cut_1); v_hongbao_cut_2 = itemView.findViewById(R.id.v_hongbao_cut_2); tv_actual_money = itemView.findViewById(R.id.tv_actual_money); ll_level_info = itemView.findViewById(R.id.ll_level_info); iv_level = itemView.findViewById(R.id.iv_level); tv_level_desc = itemView.findViewById(R.id.tv_level_desc); } } } app/src/main/java/com/tejia/lijin/app/ui/goods/GoodsDetailPreEventManager.java
New file @@ -0,0 +1,353 @@ package com.tejia.lijin.app.ui.goods; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.util.Log; import android.widget.Toast; import com.alibaba.baichuan.android.trade.callback.AlibcTradeCallback; import com.alibaba.baichuan.trade.biz.context.AlibcTradeResult; import com.alibaba.baichuan.trade.biz.login.AlibcLogin; import com.alibaba.baichuan.trade.biz.login.AlibcLoginCallback; import com.google.gson.Gson; import com.tejia.lijin.app.BasicTextHttpResponseHandler; import com.tejia.lijin.app.ShoppingApi; import com.tejia.lijin.app.entity.GoodsDetail; import com.tejia.lijin.app.entity.common.GoodsConvertLinkJumpLink; import com.tejia.lijin.app.ui.dialog.ShapeLoadingDialog; import com.tejia.lijin.app.ui.mine.LoginSelectActivity; import com.tejia.lijin.app.util.Constant; import com.tejia.lijin.app.util.GoodsBuyJumpUtil; import com.tejia.lijin.app.util.InitAlibcSdk; import com.tejia.lijin.app.util.baichuan.AlibcTradeUtil; import com.tejia.lijin.app.util.user.UserUtil; import com.wpc.library.util.common.StringUtils; import org.apache.http.Header; import org.json.JSONObject; /** * 商品详情事件管理 */ public class GoodsDetailPreEventManager { private final static int ACTION_LOGIN = 1000; private final static int ACTION_TB_AUTH = 2000; private final static int ACTION_PDD_AUTH = 2001; private int action; private ShapeLoadingDialog pd; private IPreEventListener preEventListener; private Activity mActivity; private Context mContext; private int type; private GoodsDetail goodsDetail; //淘宝是否授权成功 private boolean taoBaoAuthSuccess = false; private boolean pddAuthSuccess = false; public GoodsDetailPreEventManager(Activity activity, GoodsDetail goodsDetail) { this.mActivity = activity; this.mContext = mActivity.getApplicationContext(); this.goodsDetail = goodsDetail; } private String getSource() { if (type == 0 || type == 1) { return "zigou"; } else { return "share"; } } public void onResume() { switch (action) { case ACTION_LOGIN: //判断是否登录 action = 0; if (!UserUtil.isLogin(mContext)) { return; } //继续下一步 click(preEventListener); break; case ACTION_TB_AUTH: action = 0; //检查授权是否成功 getTaoBaoH5AuthInfo(getSource(), goodsDetail.getGoods().getGoodsId(), false, new IAuthResult() { @Override public void onSuccess() { //授权成功,继续下一步 taoBaoAuthSuccess = true; click(preEventListener); } }); break; case ACTION_PDD_AUTH: action = 0; //检查拼多多授权是否成功 isPDDAuthed(false, new IAuthResult() { @Override public void onSuccess() { //授权成功,继续下一步 pddAuthSuccess = true; click(preEventListener); } }); break; } } public void click(IPreEventListener preEventListener) { action = 0; this.preEventListener = preEventListener; //用户是否登录 if (!UserUtil.isLogin(mActivity)) { //去登录 Intent intent = new Intent(mContext, LoginSelectActivity.class); intent.putExtra("from", "淘宝"); mContext.startActivity(intent); action = ACTION_LOGIN; return; } int goodsType = 0; switch (goodsType) { case Constant.GOODS_TYPE_TB: //判断是否授权成功 if (!taoBaoAuthSuccess) { getTaoBaoH5AuthInfo(getSource(), goodsDetail.getGoods().getGoodsId(), true, new IAuthResult() { @Override public void onSuccess() { //授权成功,继续下一步 taoBaoAuthSuccess = true; tbAuthSuccess(); } }); } else { tbAuthSuccess(); } return; case Constant.GOODS_TYPE_PDD: if (!pddAuthSuccess) { //检查拼多多授权是否成功 isPDDAuthed(true, new IAuthResult() { @Override public void onSuccess() { //授权成功,继续下一步 pddAuthSuccess = true; pddAuthSuccess(); } }); } else { pddAuthSuccess(); } return; default: return; } //用户是否 } public void startClick(int type, IPreEventListener preEventListener) { action = 0; taoBaoAuthSuccess = false; this.type = type; click(preEventListener); } private void getTaoBaoH5AuthInfo(final String source, String goodsId, final boolean needJumpAuth, final IAuthResult authResultListener) { if (pd == null) pd = new ShapeLoadingDialog.Builder(mContext).build(); if (!pd.isShowing()) pd.show(); Log.e("detail", "getTaoBaoH5AuthInfo--" + source); String uid = UserUtil.getUid(mContext) + ""; ShoppingApi.getTaoBaoAuthInfo(mContext, uid, goodsId, source, true, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optInt("code") == 0) { final String authLink = jsonObject.optJSONObject("data").getString("authLink"); Log.e("detail", "authLink--" + authLink); pd.dismiss(); if (!StringUtils.isEmpty(authLink)) { if (!needJumpAuth) { return; } if (AlibcLogin.getInstance().isLogin()) { //去会员授权 AlibcTradeUtil.openAuthLink(mActivity, authLink, new AlibcTradeCallback() { @Override public void onTradeSuccess(AlibcTradeResult alibcTradeResult) { //打开淘宝成功 action = ACTION_TB_AUTH; } @Override public void onFailure(int i, String s) { action = 0; } }); } else { final AlibcLogin alibcLogin = AlibcLogin.getInstance(); alibcLogin.showLogin(new AlibcLoginCallback() { @Override public void onSuccess(int i, String s, String s1) { //淘宝登录成功 //去会员授权 AlibcTradeUtil.openAuthLink(mActivity, authLink, new AlibcTradeCallback() { @Override public void onTradeSuccess(AlibcTradeResult alibcTradeResult) { //打开淘宝成功 action = ACTION_TB_AUTH; } @Override public void onFailure(int i, String s) { action = 0; } }); } @Override public void onFailure(int code, String msg) { InitAlibcSdk.init(); Toast.makeText(mContext, "淘宝授权失败,请稍候再试", Toast.LENGTH_LONG).show(); } }); } } } else if (jsonObject.optInt("code") == 1) { authResultListener.onSuccess(); } else { pd.dismiss(); } } @Override public void onFinish() { super.onFinish(); } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { super.onFailure(statusCode, headers, responseString, throwable); pd.dismiss(); Toast.makeText(mContext, "网络请求失败", Toast.LENGTH_SHORT).show(); } }); } public void isPDDAuthed(final boolean jumpAuth, final IAuthResult authResult) { ShoppingApi.isPDDAuthed(mContext, UserUtil.getUid(mContext) + "", true, new BasicTextHttpResponseHandler() { @Override public void onStart() { super.onStart(); if (pd != null && !pd.isShowing()) pd.show(); } @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { super.onSuccessPerfect(statusCode, headers, jsonObject); if (jsonObject.optInt("code") == 0) { authResult.onSuccess(); } else { //去授权 if (jumpAuth) getPDDAuthInfo(); } } @Override public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) { super.onFailure(statusCode, headers, jsonObject, e); } @Override public void onFinish() { super.onFinish(); if (pd != null && pd.isShowing()) pd.dismiss(); } }); } public void getPDDAuthInfo() { ShoppingApi.getPDDAuthInfo(mContext, UserUtil.getUid(mContext) + "", true, new BasicTextHttpResponseHandler() { @Override public void onStart() { super.onStart(); if (pd != null && !pd.isShowing()) pd.show(); } @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { super.onSuccessPerfect(statusCode, headers, jsonObject); if (jsonObject.optInt("code") == 0) { JSONObject data = jsonObject.optJSONObject("data"); GoodsConvertLinkJumpLink pddJumpLink = new Gson().fromJson(data.toString(), GoodsConvertLinkJumpLink.class); GoodsBuyJumpUtil.jumpPDD(mContext, pddJumpLink); } else { Toast.makeText(mContext, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show(); } } @Override public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) { super.onFailure(statusCode, headers, jsonObject, e); } @Override public void onFinish() { super.onFinish(); if (pd != null && pd.isShowing()) pd.dismiss(); } }); } private void tbAuthSuccess() { preEventListener.onPreSuccess(); } private void pddAuthSuccess() { preEventListener.onPreSuccess(); } public static interface IPreEventListener { //准备工作已经做好 public void onPreSuccess(); } static interface IAuthResult { //准备工作已经做好 public void onSuccess(); } } app/src/main/java/com/tejia/lijin/app/ui/mine/LoginSelectActivity.java
@@ -313,7 +313,7 @@ case R.id.tv_login_onekey: //TODO 一键登录 openOneKeyLogin(true) openOneKeyLogin(true); break; } } app/src/main/java/com/tejia/lijin/app/ui/recommend/GoodsDetailActivity.java
@@ -8,20 +8,20 @@ import android.graphics.Color; import android.graphics.Typeface; import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.provider.Settings; import android.text.SpannableStringBuilder; import android.text.SpannableString; import android.text.Spanned; import android.text.SpannedString; import android.text.TextUtils; import android.text.style.ForegroundColorSpan; import android.text.style.RelativeSizeSpan; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.AnimationUtils; @@ -30,14 +30,10 @@ import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.PopupWindow; import android.widget.TextView; import android.widget.Toast; @@ -52,31 +48,21 @@ import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams; import com.alibaba.baichuan.trade.biz.login.AlibcLogin; import com.alibaba.baichuan.trade.biz.login.AlibcLoginCallback; import com.androidquery.AQuery; import com.bumptech.glide.Glide; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; import com.sina.weibo.sdk.share.WbShareCallback; import com.tejia.lijin.app.BasicTextHttpResponseHandler; import com.tejia.lijin.app.BuXinConstant; import com.tejia.lijin.app.R; import com.tejia.lijin.app.ShoppingApi; import com.tejia.lijin.app.callBack.DragFloatActionInterface; import com.tejia.lijin.app.callBack.LonginTaobaoCallback; import com.tejia.lijin.app.callBack.MiDuoTradeCallback; import com.tejia.lijin.app.entity.CouponInfo; import com.tejia.lijin.app.entity.CouponUser; import com.tejia.lijin.app.entity.FreeSingleTicket; import com.tejia.lijin.app.entity.GoodsDetail; import com.tejia.lijin.app.entity.PushEventData; import com.tejia.lijin.app.entity.ShareUser; import com.tejia.lijin.app.entity.TaoBaoGoodsBrief; import com.tejia.lijin.app.entity.TbPidInfo; import com.tejia.lijin.app.entity.TopMenuRightPopContent; import com.tejia.lijin.app.entity.UserInfo; import com.tejia.lijin.app.entity.common.ImageShowEntity; import com.tejia.lijin.app.entity.share.SingleGoodsShareInfo; @@ -84,41 +70,35 @@ import com.tejia.lijin.app.ui.dialog.JumpTaoBaoDialog; import com.tejia.lijin.app.ui.dialog.ReceiveCouponHintDialog; import com.tejia.lijin.app.ui.dialog.ShapeLoadingDialog; import com.tejia.lijin.app.ui.goods.GoodsDetailPreEventManager; import com.tejia.lijin.app.ui.invite.ShareBrowserActivity; import com.tejia.lijin.app.ui.mine.Collect28Activity; import com.tejia.lijin.app.ui.mine.FreeSingleTicketAdapter; import com.tejia.lijin.app.ui.mine.LoginSelectActivity; import com.tejia.lijin.app.ui.mine.MyFootmarkActivity; import com.tejia.lijin.app.ui.mine.ShoppingTrolleyActivity; import com.tejia.lijin.app.ui.trends.BigImageActivity; import com.tejia.lijin.app.util.ApkUtil; import com.tejia.lijin.app.util.Constant; import com.tejia.lijin.app.util.DragFloatActionButton; import com.tejia.lijin.app.util.FlowLayout; import com.tejia.lijin.app.util.GlideCircleTransform; import com.tejia.lijin.app.util.GlideRoundTransform; import com.tejia.lijin.app.util.ImageUtil; import com.tejia.lijin.app.util.InitAlibcSdk; import com.tejia.lijin.app.util.KeFuUtil; import com.tejia.lijin.app.util.LoginTaobao; import com.tejia.lijin.app.util.RecordImageTextVideo; import com.tejia.lijin.app.util.SetLabels; import com.tejia.lijin.app.util.Toast_Dialog; import com.tejia.lijin.app.util.TopStatusSettings; import com.tejia.lijin.app.util.baichuan.AlibcTradeUtil; import com.tejia.lijin.app.util.clipboard.ClipboardUtil; import com.tejia.lijin.app.util.ui.GoodsDetailUtil; import com.tejia.lijin.app.util.umengCustomEvent.GoodsCustomEvent; import com.tejia.lijin.app.util.umengCustomEvent.SearchCustomEvent; import com.tejia.lijin.app.util.user.LoginAndInviteStatusUtil; import com.tejia.lijin.app.util.user.UserUtil; import com.umeng.analytics.MobclickAgent; import com.wang.avi.AVLoadingIndicatorView; import com.wpc.library.content.ConnectivityChangeHelper; import com.wpc.library.recyclerviewhelper.DividerItemDecoration; import com.wpc.library.util.NetUtils; import com.wpc.library.util.SystemCommon; import com.wpc.library.util.common.DimenUtils; import com.wpc.library.util.common.StringUtils; import com.wpc.library.widget.MyGridView; import com.wpc.library.widget.MyListView; import com.wpc.library.widget.MyScrollView; import org.apache.http.Header; @@ -130,9 +110,7 @@ import java.util.List; import java.util.Map; import java.util.Timer; import java.util.TimerTask; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; @@ -142,174 +120,89 @@ * 商品详情过渡页--可跳转手淘原生,自我网页 */ public class GoodsDetailActivity extends BaseActivity implements View.OnClickListener, WbShareCallback, DragFloatActionInterface { private ImageView iv_top_left, iv_back, iv_shop_img, iv_shop_type, iv_notif_portrait, iv_imgtext_status, iv_share, iv_top_right, iv_like_state, iv_loading, iv_footermark, iv_rate; private TextView tv_top_title1, tv_top_title2, tv_top_title3, tv_top_title4, tv_shop_name, tv_shop_des, tv_shop_service, tv_shop_logistics, tv_shop_des_grade, tv_shop_logistics_grade, tv_shop_service_grade, tv_notif_name, tv_notif_des, tv_shop_see, tv_goods_des, tv_currunt_page, tv_goods_price_before, tv_sales_num, tv_coupon_show, tv_goods_price_coupon, tv_rebate_num, tv_coupon_num, tv_command_num, tv_coupon_date, tv_loading, tv_share_money_num, tv_buy, tv_rate, tv_like; private FrameLayout fl_back_face, fl_content, fl_receive_coupon, fl_command_copy; private LinearLayout fl_buy, ll_share_gain, ll_goods_detail_transition_top, ll_guess_like, ll_send_order, ll_add_collect, ll_labels, ll_no_net, ll_no_data, ll_request_failture, ll_notification, ll_loading, ll_coupon, ll_top_title, ll_command_copy; //发货地,相似搜索 private LinearLayout ll_address, ll_same; private TextView tv_address; public class GoodsDetailActivity extends BaseActivity implements View.OnClickListener { //佣金构成信息 TextView tv_fanli_composition; LinearLayout ll_fanli_composition; private View v_1, v_2, v_3, v_4, v_cover, v_cover1, v_cover2; private MyGridView gv_guess, gv_relative; /**************************控件定义开始**************************/ private MyScrollView lv_goods_pic; private WebView webView; private LinearLayout ll_content; //顶部导航栏 private ImageView iv_back, iv_top_left; private LinearLayout ll_top_title; private TextView tv_top_title1, tv_top_title2, tv_top_title3, tv_top_title4; private View v_1, v_2, v_3, v_4, v_cover, v_cover1, v_cover2; //商品基础信息 private ViewPager vp_goods_detail; private ConnectivityChangeHelper mChangeHelper; private ImageAdapter bannerAdapter; private List<String> mBanners = new ArrayList<>(); private TextView tv_currunt_page; private LinearLayout ll_labels; private TextView tv_name; private TextView tv_sales_num; private int picNum = 1; String goodsId; String goodsTaoBaoId; private DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageForEmptyUri(R.drawable.ic_goods_default) .showImageOnFail(R.drawable.ic_goods_default) .showImageOnLoading(R.drawable.ic_goods_default) .resetViewBeforeLoading(true).cacheInMemory(true) .cacheOnDisk(true).imageScaleType(ImageScaleType.EXACTLY) .considerExifParams(true) .displayer(new FadeInBitmapDisplayer(300)).build(); private Map<String, String> exParams;//yhhpass参数 AlibcShowParams alibcShowParams; AlibcTaokeParams alibcTaokeParams; //小黄条 private String TYPE = "goodsDetail"; private TextView tv_notice_content; private LinearLayout ll_notice; private ImageView iv_close; AVLoadingIndicatorView avLoadingIndicatorView; //推荐语 private LinearLayout ll_recommend; private TextView tv_recommend; //发货地 private LinearLayout ll_address; private TextView tv_address; //口令复制 private TextView tv_copy_link; //商品店铺信息 private LinearLayout ll_shop; private ImageView iv_shop_img, iv_shop_type; private TextView tv_shop_name; private TextView tv_shop_des, tv_shop_service, tv_shop_logistics, tv_shop_des_grade, tv_shop_logistics_grade, tv_shop_service_grade; Animation inAnima; Animation outAnima; //权益类型 private LinearLayout ll_rights_type; private FlowLayout fl_rights_type; int index = 1; ListView lv_share_des; //价格信息/红包 private LinearLayout ll_price; private RecyclerView rv_price_info; PopupWindow mTopRightPopupWindow; private List<TopMenuRightPopContent> mulList = new ArrayList<>(); TopMenuRightPopContentAdapter shareFromAdapter; private Toast_Dialog toast_dialog; //图文详情 private ImageView iv_imgtext_status; private WebView webView; private LinearLayout ll_loading; private ImageView iv_loading; private TextView tv_loading; boolean isScroll = false; boolean isVisible = false; long inputTime = 0; //猜你喜欢 private LinearLayout ll_guess_like; private MyGridView gv_guess; //底部按钮 private LinearLayout ll_coupon_container; /** * 免单开始 */ //免单 private TextView tv_coupon_date_miandan, tv_coupon_num_miandan; private FrameLayout fl_coupon_miandan; private TextView tv_big_btn; private LinearLayout ll_bottom; /* 商品详情免单券弹框接口 */ private void getGoodsMianDanCouponList() { if (pd == null) pd = new ShapeLoadingDialog.Builder(this).build(); if (!pd.isShowing()) pd.show(); String uid = getSharedPreferences("user", MODE_PRIVATE) .getString("uid", ""); ShoppingApi.getGoodsCouponList(this, uid, Constant.GOODS_TYPE_TB, goodsId, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { initPopubWindow(jsonObject.optJSONObject("data")); } else { Toast.makeText(GoodsDetailActivity.this, jsonObject.optString("msg"), Toast.LENGTH_LONG).show(); } } @Override public void onFinish() { super.onFinish(); pd.dismiss(); } }); } private View view_share_buy_divider; private void initShareAndBuyBtn(boolean shareValid, boolean fanliValid) { if (view_share_buy_divider == null) view_share_buy_divider = findViewById(R.id.view_share_buy_divider); if (shareValid && fanliValid) { fl_buy.setVisibility(View.VISIBLE); ll_share_gain.setVisibility(View.VISIBLE); view_share_buy_divider.setVisibility(View.GONE); } else if (shareValid) { ll_share_gain.setVisibility(View.VISIBLE); ll_share_gain.setBackgroundResource(R.drawable.shape_go_share_full); fl_buy.setVisibility(View.GONE); view_share_buy_divider.setVisibility(View.VISIBLE); } else if (fanliValid) { fl_buy.setVisibility(View.VISIBLE); fl_buy.setBackgroundResource(R.drawable.shape_go_fanli_full); ll_share_gain.setVisibility(View.GONE); view_share_buy_divider.setVisibility(View.VISIBLE); } else { fl_buy.setVisibility(View.GONE); ll_share_gain.setVisibility(View.GONE); } } /** * 免单结束 */ @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setContentView(R.layout.activity_goods_detail_transition); TopStatusSettings.setStatusViewAndDeepColor2(this); from = getIntent().getStringExtra("from"); if (StringUtils.isEmpty(from)) from = ""; GoodsCustomEvent.goodsDetail(this, from); inputTime = System.currentTimeMillis(); //推荐语 ll_recommend = findViewById(R.id.ll_recommend); tv_recommend = findViewById(R.id.tv_recommend); //复制链接 findViewById(R.id.ll_copy_link).setOnClickListener(this); tv_copy_link = findViewById(R.id.tv_copy_link); tv_copy_link.setText("复制口令"); ll_coupon_container = findViewById(R.id.ll_coupon_container); //底部操作栏 private LinearLayout ll_bottom, ll_add_collect; private ImageView iv_like_state; private TextView tv_like; private LinearLayout ll_fanli, ll_buy; private TextView tv_fanli_money_num, tv_buy; //用户领取数据 private LinearLayout ll_notification; private ImageView iv_notif_portrait; private TextView tv_notif_name, tv_notif_des; //状态数据 private FrameLayout fl_face, fl_back_face; private LinearLayout ll_goods_nothing; private ImageView iv_back_face; private AVLoadingIndicatorView avLoadingIndicatorView; private LinearLayout ll_no_net, ll_no_data, ll_request_failture; /**************************控件定义结束**************************/ private GoodsDetailPreEventManager goodsDetailPreEventManager; private void initView() { ll_content = findViewById(R.id.ll_content); lv_goods_pic = findViewById(R.id.lv_goods_pic); tv_top_title1 = findViewById(R.id.tv_top_title1); tv_top_title2 = findViewById(R.id.tv_top_title2); @@ -319,13 +212,10 @@ tv_like = findViewById(R.id.tv_like); ll_add_collect = findViewById(R.id.ll_add_collect); ll_labels = findViewById(R.id.ll_labels); ll_send_order = findViewById(R.id.ll_send_order); tv_share_money_num = findViewById(R.id.tv_share_money_num); tv_buy = findViewById(R.id.tv_buy); ll_top_title = findViewById(R.id.ll_top_title); iv_shop_img = findViewById(R.id.iv_shop_img); iv_shop_type = findViewById(R.id.iv_shop_type); tv_shop_see = findViewById(R.id.tv_shop_see); tv_shop_name = findViewById(R.id.tv_shop_name); tv_shop_des = findViewById(R.id.tv_shop_des); tv_shop_service = findViewById(R.id.tv_shop_service); @@ -333,33 +223,75 @@ tv_shop_des_grade = findViewById(R.id.tv_shop_des_grade); tv_shop_logistics_grade = findViewById(R.id.tv_shop_logistics_grade); tv_shop_service_grade = findViewById(R.id.tv_shop_service_grade); iv_footermark = findViewById(R.id.iv_footermark); // iv_like = findViewById(R.id.iv_like); v_cover = findViewById(R.id.v_cover); v_cover1 = findViewById(R.id.v_cover1); v_cover2 = findViewById(R.id.v_cover2); ll_goods_detail_transition_top = findViewById(R.id.ll_goods_detail_transition_top); v_1 = findViewById(R.id.v_1); v_2 = findViewById(R.id.v_2); v_3 = findViewById(R.id.v_3); v_4 = findViewById(R.id.v_4); avLoadingIndicatorView = findViewById(R.id.avi); ll_share_gain = findViewById(R.id.ll_share_gain); ll_guess_like = findViewById(R.id.ll_guess_like); fl_buy = findViewById(R.id.fl_buy); iv_imgtext_status = findViewById(R.id.iv_imgtext_status); iv_share = findViewById(R.id.iv_share); iv_top_right = findViewById(R.id.iv_top_bar_right); ll_loading = findViewById(R.id.ll_loading); tv_loading = findViewById(R.id.tv_loading); iv_loading = findViewById(R.id.iv_loading); webView = findViewById(R.id.webView); vp_goods_detail = findViewById(R.id.vp_goods_img); tv_currunt_page = findViewById(R.id.tv_page_num); tv_sales_num = findViewById(R.id.tv_sales_num); //发货地,相似搜索 ll_address = findViewById(R.id.ll_address); tv_address = findViewById(R.id.tv_address); gv_guess = findViewById(R.id.gv_guess_like); fl_back_face = findViewById(R.id.fl_back_face); iv_notif_portrait = findViewById(R.id.iv_notif_portrait); tv_notif_name = findViewById(R.id.tv_notif_name); tv_notif_des = findViewById(R.id.tv_notif_des); iv_top_left = findViewById(R.id.iv_top_bar_left1); iv_back = findViewById(R.id.iv_back); ll_bottom = findViewById(R.id.ll_bottom); ll_notification = findViewById(R.id.ll_notification); tv_notice_content = findViewById(R.id.tv_notice_content); ll_notice = findViewById(R.id.ll_notice); iv_close = findViewById(R.id.iv_close); ll_no_net = findViewById(R.id.ll_no_net); ll_no_data = findViewById(R.id.ll_no_data); ll_request_failture = findViewById(R.id.ll_request_failture); tv_name = findViewById(R.id.tv_name); ll_shop = findViewById(R.id.ll_shop); ll_rights_type = findViewById(R.id.ll_rights_type); fl_rights_type = findViewById(R.id.fl_rights_type); //价格信息/红包 ll_price = findViewById(R.id.ll_price); rv_price_info = findViewById(R.id.rv_price_info); ll_fanli = findViewById(R.id.ll_fanli); ll_buy = findViewById(R.id.ll_buy); tv_fanli_money_num = findViewById(R.id.tv_fanli_money_num); } private void initData() { //umeng统计 GoodsCustomEvent.goodsDetail(this, from); inputTime = System.currentTimeMillis(); goodsId = getIntent().getExtras().getString("id"); tv_loading.setText("宝贝详情页加载中..."); AnimationDrawable animationDrawable = (AnimationDrawable) getResources().getDrawable( R.drawable.anim_list_loading); iv_loading.setImageDrawable(animationDrawable); animationDrawable.start(); webView = findViewById(R.id.webView); webView.setWebViewClient(new MWebviewClient()); WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true); @@ -369,68 +301,17 @@ avLoadingIndicatorView.setVisibility(View.VISIBLE); Animation ani = AnimationUtils.loadAnimation(this, R.anim.touming); //申明一个动画 avLoadingIndicatorView.setAnimation(ani);//为图片绑定动画 vp_goods_detail = findViewById(R.id.vp_goods_img); tv_currunt_page = findViewById(R.id.tv_page_num); tv_goods_price_before = findViewById(R.id.tv_goods_price_before); tv_sales_num = findViewById(R.id.tv_sales_num); tv_coupon_show = findViewById(R.id.tv_coupon_show); tv_goods_price_coupon = findViewById(R.id.tv_goods_price_coupon); tv_rebate_num = findViewById(R.id.tv_rebate_num); tv_coupon_num = findViewById(R.id.tv_coupon_num); tv_command_num = findViewById(R.id.tv_command_num); tv_coupon_date = findViewById(R.id.tv_coupon_date); fl_receive_coupon = findViewById(R.id.fl_receive_coupon); fl_command_copy = findViewById(R.id.fl_command_copy); ll_coupon = findViewById(R.id.ll_coupon); //发货地,相似搜索 ll_same = findViewById(R.id.ll_same); ll_address = findViewById(R.id.ll_address); tv_address = findViewById(R.id.tv_address); ll_command_copy = findViewById(R.id.ll_command_copy); gv_relative = findViewById(R.id.gv_relative); gv_guess = findViewById(R.id.gv_guess_like); fl_back_face = findViewById(R.id.fl_back_face); findViewById(R.id.fl_face).setVisibility(View.VISIBLE); iv_notif_portrait = findViewById(R.id.iv_notif_portrait); tv_notif_name = findViewById(R.id.tv_notif_name); tv_notif_des = findViewById(R.id.tv_notif_des); lv_share_des = findViewById(R.id.lv_share_des); lv_share_des.setClickable(false); //返利比例信息 tv_rate = findViewById(R.id.tv_rate); iv_rate = findViewById(R.id.iv_rate); ll_fanli_composition = findViewById(R.id.ll_fanli_composition); tv_fanli_composition = findViewById(R.id.tv_fanli_composition); bannerAdapter = new ImageAdapter(mBanners, this); vp_goods_detail.setAdapter(bannerAdapter); vp_goods_detail.setCurrentItem(0, true); iv_top_left = findViewById(R.id.iv_top_bar_left1); iv_back = findViewById(R.id.iv_back); tv_goods_des = findViewById(R.id.tv_goods_des); ll_bottom = findViewById(R.id.ll_bottom); tv_big_btn = findViewById(R.id.tv_big_btn); goodsId = getIntent().getExtras().getString("id"); rAdapter = new RelativeGoodsAdapter(this, rList, "相关推荐"); gv_relative.setAdapter(rAdapter); gAdapter = new RelativeGoodsAdapter(this, gList, "猜你喜欢"); gv_guess.setAdapter(gAdapter); ll_notification = findViewById(R.id.ll_notification); inAnima = AnimationUtils.loadAnimation(this, R.anim.goods_detail_notify_input); outAnima = AnimationUtils .loadAnimation(this, R.anim.goods_detail_notify_out); // ll_notification.startAnimation(inAnima); // inAnima.start(); inAnima.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { @@ -489,53 +370,6 @@ } }); tv_notice_content = findViewById(R.id.tv_notice_content); ll_notice = findViewById(R.id.ll_notice); iv_close = findViewById(R.id.iv_close); getAppPageNotification(); fl_content = findViewById(R.id.fl_content); ll_no_net = findViewById(R.id.ll_no_net); ll_no_data = findViewById(R.id.ll_no_data); ll_request_failture = findViewById(R.id.ll_request_failture); findViewById(R.id.tv_net_setting).setOnClickListener(this); findViewById(R.id.tv_refresh).setOnClickListener(this); findViewById(R.id.fl_goods_detail).setOnClickListener(this); iv_top_left.setOnClickListener(this); iv_back.setOnClickListener(this); tv_top_title1.setOnClickListener(this); tv_top_title2.setOnClickListener(this); tv_top_title3.setOnClickListener(this); tv_top_title4.setOnClickListener(this); ll_add_collect.setOnClickListener(this); ll_send_order.setOnClickListener(this); ll_share_gain.setOnClickListener(this); fl_receive_coupon.setOnClickListener(this); fl_back_face.setOnClickListener(this); fl_buy.setOnClickListener(this); iv_footermark.setOnClickListener(this); // iv_like.setOnClickListener(this); ll_top_title.setVisibility(View.GONE); iv_share.setOnClickListener(this); iv_top_right.setOnClickListener(this); tv_shop_see.setOnClickListener(this); fl_command_copy.setOnClickListener(this); v_cover2.setOnClickListener(this); //相似搜索点击 ll_same.setOnClickListener(this); iv_rate.setOnClickListener(this); tv_big_btn.setOnClickListener(this); if (getSharedPreferences("user", MODE_PRIVATE).getString("is_goods_web_detail", "0").equalsIgnoreCase("1")) { Intent intent = new Intent(GoodsDetailActivity.this, GoodsDetailBrowerActivity.class); intent.putExtra("id", goodsId); startActivity(intent); finish(); } vp_goods_detail.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { @@ -558,25 +392,24 @@ public void onScroll(int scrollY) { int titleHeight = DimenUtils.dip2px(GoodsDetailActivity.this, 48); int marginTopHeight = DimenUtils.dip2px(GoodsDetailActivity.this, 8); if (scrollY < (ll_goods_detail_transition_top.getHeight() - titleHeight * 2)) {//头部 if (scrollY < (vp_goods_detail.getHeight() - titleHeight * 2)) {//头部 setPosition(1); } else if (scrollY >= ll_goods_detail_transition_top.getHeight() - titleHeight * 2 && scrollY < (ll_goods_detail_transition_top.getHeight() + webView.getHeight() - titleHeight) } else if (scrollY >= vp_goods_detail.getHeight() - titleHeight * 2 && scrollY < (vp_goods_detail.getHeight() + webView.getHeight() - titleHeight) && webView.getVisibility() != View.GONE) {//详情图片 setPosition(2); } else if (scrollY >= (ll_goods_detail_transition_top.getHeight() + webView.getHeight() - titleHeight + marginTopHeight) && scrollY < (ll_goods_detail_transition_top.getHeight() } else if (scrollY >= (vp_goods_detail.getHeight() + webView.getHeight() - titleHeight + marginTopHeight) && scrollY < (vp_goods_detail.getHeight() + webView.getHeight() + ll_guess_like.getHeight() - titleHeight + marginTopHeight) && webView.getVisibility() != View.GONE) {//猜你喜欢 setPosition(3); } else if (scrollY >= (ll_goods_detail_transition_top.getHeight() + webView.getHeight() } else if (scrollY >= (vp_goods_detail.getHeight() + webView.getHeight() + ll_guess_like.getHeight() - titleHeight + marginTopHeight)) {//推荐 setPosition(4); } else { setPosition(4); } float baseHeight = ll_goods_detail_transition_top.getHeight() / 4; float baseHeight = vp_goods_detail.getHeight() / 4; if (scrollY >= 1 && scrollY < baseHeight) { if (scrollY / baseHeight < 0.1) { @@ -607,14 +440,29 @@ } }); gv_relative.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { TaoBaoGoodsBrief info = (TaoBaoGoodsBrief) adapterView.getAdapter().getItem(position); goodsId = info.getGoodsId(); getGoodsDetail(); } }); ll_top_title.setVisibility(View.GONE); findViewById(R.id.tv_net_setting).setOnClickListener(this); findViewById(R.id.tv_refresh).setOnClickListener(this); findViewById(R.id.fl_goods_detail).setOnClickListener(this); iv_top_left.setOnClickListener(this); iv_back.setOnClickListener(this); tv_top_title1.setOnClickListener(this); tv_top_title2.setOnClickListener(this); tv_top_title3.setOnClickListener(this); tv_top_title4.setOnClickListener(this); ll_add_collect.setOnClickListener(this); fl_back_face.setOnClickListener(this); v_cover2.setOnClickListener(this); if (getSharedPreferences("user", MODE_PRIVATE).getString("is_goods_web_detail", "0").equalsIgnoreCase("1")) { Intent intent = new Intent(GoodsDetailActivity.this, GoodsDetailBrowerActivity.class); intent.putExtra("id", goodsId); startActivity(intent); finish(); } gv_guess.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { @@ -624,70 +472,21 @@ } }); initMianDanView(); initTopRightPopupWindow(); toast_dialog = new Toast_Dialog(this); tv_goods_des.setOnLongClickListener(new View.OnLongClickListener() { tv_name.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { if (tv_goods_des.getText() != null && !StringUtils.isEmpty(tv_goods_des.getText().toString())) { String str1 = tv_goods_des.getText().toString(); if (tv_name.getText() != null && !StringUtils.isEmpty(tv_name.getText().toString())) { String str1 = tv_name.getText().toString(); String substr1 = str1.replaceFirst("## ", ""); ClipboardUtil.copy(getApplicationContext(), substr1); // SingleToast.showToast(ll_novice.getContext(), "复制成功"); toast_dialog.MyDialog("标题复制成功", false); } return false; } }); acbutton = findViewById(R.id.actionButton); acbutton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //登陆 if (getSharedPreferences("user", MODE_PRIVATE).getBoolean("isLogin", false)) { LoginTaobao.getLoginTaobao(GoodsDetailActivity.this, new LonginTaobaoCallback() { @Override public void onSuccess() { startActivity(new Intent(GoodsDetailActivity.this, ShoppingTrolleyActivity.class)); } @Override public void onError() { Toast.makeText(GoodsDetailActivity.this, "登陆淘宝失败", Toast.LENGTH_SHORT).show(); } }); } else { Intent intent = new Intent(GoodsDetailActivity.this, LoginSelectActivity.class); intent.putExtra("from", "淘宝"); startActivity(intent); } } }); img = findViewById(R.id.actionButton_img); //获取 取消悬浮控件的宽高 ViewTreeObserver vto2 = img.getViewTreeObserver(); vto2.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { img.getViewTreeObserver().removeGlobalOnLayoutListener(this); //传入 主界面 指定控件的宽高 if (acbutton != null) { acbutton.setWidthHeight((int) (img.getWidth() * 0.77), (int) (img.getHeight() * 0.77)); } img.setVisibility(View.GONE);//隐藏 } }); // 购物车显示 RecordImageTextVideo textVideo = new RecordImageTextVideo(this); //服务器让显示 购物车&&本地也让显示 if (textVideo.getCart_float().equals("1") && textVideo.getLocalCart_float() != 1 && getSharedPreferences("user", MODE_PRIVATE).getBoolean("isLogin", false)) { acbutton.setVisibility(View.VISIBLE); } else {//隐藏购物车 acbutton.setVisibility(View.GONE); } mChangeHelper = new ConnectivityChangeHelper(this, new ConnectivityChangeHelper.OnConnectivityChangeListener() { @@ -705,89 +504,74 @@ } } }); tv_buy.postDelayed(new Runnable() { @Override public void run() { if ((!isDestroyed()) && isVisible && isScroll) { PushEventData info = new PushEventData(); info.setGoodsId(goodsId); info.setGoodsType("2"); Gson gson = new GsonBuilder().serializeNulls().create(); String data = gson.toJson(info); GoldPushEventRequest.request(GoodsDetailActivity.this, "scanGoods", data); } } }, 15 * 1000); } private ImageView img; private DragFloatActionButton acbutton; /** * 初始化右上角提示 */ private void initTopRightPopupWindow() { View view = getLayoutInflater().inflate(R.layout.item_share_from_filter, null, false); // 创建PopupWindow实例,200,150分别是宽度和高度 mTopRightPopupWindow = new PopupWindow(view, (int) (SystemCommon.getScreenWidth(this) / 2), ViewGroup.LayoutParams.WRAP_CONTENT, true); // 设置动画效果 [R.style.AnimationFade 是自己事先定义好的] // pw_filter.setAnimationStyle(R.style.pop_multiple); mTopRightPopupWindow.setTouchable(true); mTopRightPopupWindow.setOutsideTouchable(false); mTopRightPopupWindow.setFocusable(false); ListView lv = view.findViewById(R.id.lv_filter_pw); // mulList.add(new TopMenuRightPopContent("复制链接", R.drawable.ic_goods_detail_copy_link)); mulList.add(new TopMenuRightPopContent("帮助中心", R.drawable.ic_goods_detail_help_center)); mulList.add(new TopMenuRightPopContent("新手攻略", R.drawable.ic_goods_detail_novice)); mulList.add(new TopMenuRightPopContent("联系客服", R.drawable.ic_goods_detail_contact_kefu)); mulList.add(new TopMenuRightPopContent("我要吐槽", R.drawable.ic_goods_detail_criticism)); shareFromAdapter = new TopMenuRightPopContentAdapter(this, mulList); lv.setAdapter(shareFromAdapter); private ConnectivityChangeHelper mChangeHelper; private ImageAdapter bannerAdapter; private List<String> mBanners = new ArrayList<>(); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mTopRightPopupWindow.dismiss(); v_cover.setVisibility(View.GONE); GoodsCustomEvent .goodsDetailMoreBtn(GoodsDetailActivity.this, mulList.get(position).getName()); SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE); // if (position == 0) { // ClipboardManager manager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); // ClipData myClip = ClipData.newPlainText("text", h5Url); // manager.setPrimaryClip(myClip); // Toast.makeText(GoodsDetailActivity.this, "链接复制成功", Toast.LENGTH_LONG).show(); // } else if (position == 0) { Intent intent1 = new Intent(GoodsDetailActivity.this, ShareBrowserActivity.class); intent1.putExtra("title", "帮助中心"); intent1.putExtra("url", sp.getString("help", "")); startActivity(intent1); } else if (position == 1) { RecordImageTextVideo textVideo = new RecordImageTextVideo(GoodsDetailActivity.this); String url = textVideo.getvideoMoreUrl(); if (StringUtils.isEmpty(url)) { url = textVideo.gettxtImgUtl(); } Intent intent = new Intent(GoodsDetailActivity.this, ShareBrowserActivity.class); intent.putExtra("url", url); startActivity(intent); } else if (position == 2) { // startActivity(new Intent(GoodsDetailActivity.this, ContactUsActivity.class)); KeFuUtil.jumpKeFu(GoodsDetailActivity.this, "商品详情"); } else if (position == 3) { startActivity(new Intent(GoodsDetailActivity.this, GoComplainActivity.class)); } } }); mTopRightPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { @Override public void onDismiss() { v_cover2.setVisibility(View.GONE); } }); private int picNum = 1; String goodsId; String goodsTaoBaoId; private Map<String, String> exParams;//yhhpass参数 AlibcShowParams alibcShowParams; AlibcTaokeParams alibcTaokeParams; Animation inAnima; Animation outAnima; int index = 1; private Toast_Dialog toast_dialog; boolean isScroll = false; boolean isVisible = false; long inputTime = 0; private View view_share_buy_divider; private void initFanliAndBuyBtn(boolean buyValid, boolean fanliValid) { if (view_share_buy_divider == null) view_share_buy_divider = findViewById(R.id.view_share_buy_divider); if (buyValid && fanliValid) { ll_buy.setVisibility(View.VISIBLE); ll_fanli.setVisibility(View.VISIBLE); view_share_buy_divider.setVisibility(View.GONE); } else if (fanliValid) { ll_fanli.setVisibility(View.VISIBLE); ll_fanli.setBackgroundResource(R.drawable.shape_go_fanli_full); ll_buy.setVisibility(View.GONE); view_share_buy_divider.setVisibility(View.VISIBLE); } else if (buyValid) { ll_buy.setVisibility(View.VISIBLE); ll_buy.setBackgroundResource(R.drawable.shape_go_share_full); ll_fanli.setVisibility(View.GONE); view_share_buy_divider.setVisibility(View.VISIBLE); } else { ll_buy.setVisibility(View.GONE); ll_fanli.setVisibility(View.GONE); } } @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setContentView(R.layout.activity_goods_detail_transition); TopStatusSettings.setStatusViewAndDeepColor2(this); from = getIntent().getStringExtra("from"); if (StringUtils.isEmpty(from)) from = ""; initView(); initData(); getAppPageNotification(); } Handler handler = new Handler() { @Override @@ -802,8 +586,6 @@ ll_notification.setAnimation(inAnima); ll_notification.startAnimation(inAnima); // inAnima.start(); } else if (msg.what == 2) { lv_share_des.setSelection(0); } else if (msg.what == 3) {//关闭弹窗 if (dialog != null && dialog.isShowing()) dialog.dismiss(); @@ -895,9 +677,6 @@ boolean isNative = true; TbPidInfo tInfo; List<CouponUser> couponUsers; List<ShareUser> sList; ShareExampleAdapter shareAdapter; // ProgressDialog pd; String from; String noRebateHelpLink; boolean isQuestDetail; @@ -909,9 +688,6 @@ ShoppingApi.getGoodsInfoTB(this, goodsId, uid, from, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { // findViewById(R.id.fl_face).setVisibility(View.GONE); // findViewById(R.id.ll_goods_nothing).setVisibility(View.GONE); // fl_content.setVisibility(View.VISIBLE); if (jsonObject.optString("code").equalsIgnoreCase("0")) { FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); params.bottomMargin = DimenUtils.dip2px(GoodsDetailActivity.this, 50); @@ -919,11 +695,11 @@ Gson gson = new GsonBuilder().serializeNulls().create(); mInfo = gson.fromJson(jsonObject.optJSONObject("data").toString(), GoodsDetail.class); getGoodsRecommend(); goodsDetailPreEventManager = new GoodsDetailPreEventManager(GoodsDetailActivity.this, mInfo); h5Url = mInfo.getExtra().getH5Url();//产品h5 链接 couponUsers = mInfo.getExtra().getListCouponUser(); sList = mInfo.getExtra().getListShareUser(); noRebateHelpLink = mInfo.getExtra().getShare().getHelpLink(); if (mInfo.getGoods() != null && mInfo.getGoods().getLabels() != null && mInfo.getGoods().getLabels().size() > 0) { @@ -932,19 +708,12 @@ } else { ll_labels.setVisibility(View.GONE); } if (sList.size() <= 0) { lv_share_des.setVisibility(View.GONE); } else { lv_share_des.setVisibility(View.VISIBLE); } shareAdapter = new ShareExampleAdapter(sList); lv_share_des.setAdapter(shareAdapter); if (timer != null) { timer.cancel(); timer = null; index = 1; } startTimer(sList.size()); goodsTaoBaoId = mInfo.getGoods().getGoodsId(); isCollect = mInfo.getExtra().isCollected(); @@ -954,40 +723,9 @@ ll_notification.setAnimation(inAnima); ll_notification.startAnimation(inAnima); } ImageUtil.showImageFace(GoodsDetailActivity.this, mInfo.getGoods().getTitle(), mInfo.getGoods().getShopType(), tv_goods_des); tv_goods_price_before.setText(mInfo.getGoods().getPriceName() + " ¥" + mInfo.getGoods().getZkPrice()); ImageUtil.showImageFace(GoodsDetailActivity.this, mInfo.getGoods().getTitle(), mInfo.getGoods().getShopType(), tv_name); webView.loadUrl(mInfo.getExtra().getDetailUrl()); tv_sales_num.setText("月销 " + mInfo.getGoods().getSalesCount()); tv_rebate_num.setText(" 返" + mInfo.getGoods().getMoneyInfo().getFanliMoney()); tv_share_money_num.setText(mInfo.getGoods().getMoneyInfo().getShareMoney()); //设置比例信息 if (!StringUtils.isEmpty(mInfo.getGoods().getMoneyInfo().getRateInfo())) { tv_rate.setVisibility(View.VISIBLE); tv_rate.setText(mInfo.getGoods().getMoneyInfo().getRateInfo()); } else { tv_rate.setVisibility(View.GONE); } if (!StringUtils.isEmpty(mInfo.getGoods().getMoneyInfo().getRateInfoHelpUrl())) { iv_rate.setVisibility(View.VISIBLE); } else { iv_rate.setVisibility(View.GONE); } //设置推荐信息 if (StringUtils.isEmpty(mInfo.getGoods().getDescription())) { ll_recommend.setVisibility(View.GONE); } else { ll_recommend.setVisibility(View.VISIBLE); tv_recommend.setText(mInfo.getGoods().getDescription()); } //设置补贴信息 if (!StringUtils.isBlank(mInfo.getGoods().getMoneyInfo().getCompositionInfo())) { tv_fanli_composition.setText(mInfo.getGoods().getMoneyInfo().getCompositionInfo()); } Glide.with(GoodsDetailActivity.this).load(mInfo.getGoods().getShopInfo().getShopIcon()) @@ -1008,10 +746,6 @@ mInfo.getGoods().getShopInfo().getScoreSellerD() == 1 ? "高" : "低"); tv_shop_logistics_grade.setText(mInfo.getGoods().getShopInfo().getScoreLogisticsD() == 0 ? "平" : mInfo.getGoods().getShopInfo().getScoreLogisticsD() == 1 ? "高" : "低"); if (mInfo.getGoods().getOtherInfo().getRewardCoupon() != null) { tv_reward_money.setText(mInfo.getGoods().getOtherInfo().getRewardCoupon().getMaxMoney()); tv_reward_hint.setText(mInfo.getGoods().getOtherInfo().getRewardCoupon().getDesc()); } if (mInfo.getExtra().isCollected()) { setCollectionData(true); @@ -1019,60 +753,11 @@ setCollectionData(false); } if (mInfo.getGoods().isHasCoupon()) { if (mInfo.getGoods().getCouponInfoList() == null) { List<CouponInfo> couponInfoList = new ArrayList<>(); couponInfoList.add(mInfo.getGoods().getCouponInfo()); mInfo.getGoods().setCouponInfoList(couponInfoList); } if (mInfo.getGoods().getCouponInfoList().size() > 3) initCouponInfo(mInfo.getGoods().getCouponInfoList().subList(0, 3)); else initCouponInfo(mInfo.getGoods().getCouponInfoList()); if (StringUtils.isEmpty(mInfo.getGoods().getCouponInfo().getToken())) { ll_command_copy.setVisibility(View.GONE); } else { ll_command_copy.setVisibility(View.VISIBLE); tv_command_num.setText(mInfo.getGoods().getCouponInfo().getToken()); } tv_buy.setText(mInfo.getGoods().getMoneyInfo().getFanliMoney()); tv_coupon_num.setText("¥ " + mInfo.getGoods().getCouponInfo().getAmount()); String couponDate = StringUtils.isEmpty(mInfo.getGoods().getCouponInfo().getStartTime()) ? "" : mInfo.getGoods().getCouponInfo().getStartTime() + "-" + mInfo.getGoods().getCouponInfo().getEndTime(); tv_coupon_date.setText("使用期限:" + couponDate); tv_goods_price_coupon.setText(mInfo.getGoods().getCouponPrice()); // NewbieGuide.with(GoodsDetailActivity.this) // .setLabel("guideDetail") //// .alwaysShow(true)//总是显示,调试时可以打开 // .addGuidePage(GuidePage.newInstance() // .addHighLight(fl_buy, HighLight.Shape.ROUND_RECTANGLE, // 20, 20, null) // .setLayoutRes(R.layout.item_guide_detail2, R.id.iv_next) // .setEverywhereCancelable(false) // ).show(); } else { ll_command_copy.setVisibility(View.GONE); tv_buy.setText(mInfo.getGoods().getMoneyInfo().getFanliMoney()); tv_coupon_show.setVisibility(View.GONE); ll_coupon.setVisibility(View.GONE); tv_goods_price_coupon.setText(mInfo.getGoods().getZkPrice()); } //发货地设置 if (!StringUtils.isBlank(mInfo.getGoods().getProvCity())) { ll_address.setVisibility(View.VISIBLE); tv_address.setText(mInfo.getGoods().getProvCity()); } //一键发单设置 GoodsDetailUtil.initSendOrderView(GoodsDetailActivity.this, mInfo.getExtra()); fl_buy.setVisibility(mInfo.getExtra().isFanliValid() ? View.VISIBLE : View.GONE); tv_rebate_num.setVisibility(mInfo.getExtra().isFanliValid() ? View.VISIBLE : View.GONE); Log.i("mResult", "isLike的值为" + mInfo.getGoods().getGoodsId()); @@ -1083,11 +768,10 @@ bannerAdapter.notifyDataSetChanged(); vp_goods_detail.setCurrentItem(0); isNative = mInfo.getExtra().isNative(); setMianDanData(); initShareAndBuyBtn(mInfo.getExtra().isShareValid(), mInfo.getExtra().isFanliValid()); initFanliAndBuyBtn(mInfo.getExtra().isShareValid(), mInfo.getExtra().isFanliValid()); requestState(0); } else if (jsonObject.optString("code").equalsIgnoreCase("2")) { fl_content.setVisibility(View.GONE); ll_content.setVisibility(View.GONE); findViewById(R.id.ll_goods_nothing).setVisibility(View.VISIBLE); findViewById(R.id.fl_face).setVisibility(View.VISIBLE); } @@ -1115,149 +799,29 @@ lv_goods_pic.scrollTo(0, 0); avLoadingIndicatorView.hide(); findViewById(R.id.fl_face).setVisibility(View.GONE); fl_content.setVisibility(View.VISIBLE); ll_content.setVisibility(View.VISIBLE); } }); } Timer timer; /** * 启动分享提示栏timer */ private void startTimer(final int length) { timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { if (index <= length) { lv_share_des.smoothScrollBy(DimenUtils.dip2px(GoodsDetailActivity.this, 62), 1000); index++; } else { index = 1; handler.sendEmptyMessage(2); } } }, 2000, 3000); } private void getGoodsRecommend() { ShoppingApi.getGuessAndRecommend(this, goodsId, mInfo.getGoods().getGoodsType() + "", new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { gList.clear(); Gson gson = new GsonBuilder().serializeNulls().create(); List<TaoBaoGoodsBrief> list1 = gson.fromJson( jsonObject.optJSONObject("data").optJSONArray("listGuess").toString(), new TypeToken<List<TaoBaoGoodsBrief>>() { }.getType()); List<TaoBaoGoodsBrief> list2 = gson.fromJson( jsonObject.optJSONObject("data").optJSONArray("listQuality").toString(), new TypeToken<List<TaoBaoGoodsBrief>>() { }.getType()); if (list1 != null && list1.size() > 0) { gList.addAll(list1); gAdapter.notifyDataSetChanged(); } if (list2 != null && list2.size() > 0) { rList.addAll(list2); rAdapter.notifyDataSetChanged(); } if (gList.size() == 0) { findViewById(R.id.fl_top_title3).setVisibility(View.GONE); ll_guess_like.setVisibility(View.GONE); } if (rList.size() == 0) { findViewById(R.id.fl_top_title4).setVisibility(View.GONE); findViewById(R.id.ll_relative_goods).setVisibility(View.GONE); } } } }); } JumpTaoBaoDialog dialog; boolean isFirst = true; List<CouponInfo> couponInfoList = new ArrayList<>(); GoodsDetailCouponAdapter couponAdapter = null; CouponInfo tempCouponInfo; MyListView couponListView; private void initCouponInfo(List<CouponInfo> couponList) { if (couponList != null && couponList.size() > 0) { couponInfoList.clear(); couponInfoList.addAll(couponList); if (couponAdapter == null) { couponAdapter = new GoodsDetailCouponAdapter(this, couponInfoList, new GoodsDetailCouponAdapter.IRecieveCoupon() { @Override public void recieve(CouponInfo info) { tempCouponInfo = info; recieveCoupon(info); } }); } if (couponListView == null) { couponListView = new MyListView(this); couponListView.setDivider(null); couponListView.setDividerHeight(DimenUtils.dip2px(this, 3)); ll_coupon_container.removeAllViews(); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); couponListView.setLayoutParams(params); ll_coupon_container.addView(couponListView, params); final LinearLayout footerView = new LinearLayout(this); footerView.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); footerView.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); TextView textView = new TextView(this); textView.setText("点击查看更多 "); textView.setTextSize(11); textView.setTextColor(Color.rgb(102, 102, 102)); footerView.addView(textView); footerView.setBackground(null); ImageView imageView = new ImageView(this); imageView.setImageResource(R.drawable.ic_arrow_down); footerView.addView(imageView); footerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { initCouponInfo(mInfo.getGoods().getCouponInfoList()); couponListView.removeFooterView(footerView); } }); if (mInfo.getGoods().getCouponInfoList() != null && mInfo.getGoods().getCouponInfoList().size() > 3) couponListView.addFooterView(footerView); couponListView.setAdapter(couponAdapter); } couponAdapter.notifyDataSetChanged(); } } @Override protected void onResume() { super.onResume(); if (goodsDetailPreEventManager != null) goodsDetailPreEventManager.onResume(); isVisible = true; mChangeHelper.registerReceiver(); // vp_goods_detail.postDelayed(mAutoScroller, 5000); SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE); boolean isLogin = sp.getBoolean("isLogin", false); //VIP不在展示超级会员 UserInfo user = UserUtil.getUserInfo(this); if (user != null && user.isVip()) { ll_reward_coupon.setVisibility(View.GONE); } else ll_reward_coupon.setVisibility(View.VISIBLE); setMianDanData(); if (isLogin) { if (isClick == 1 && !isTBStartBind) { @@ -1290,14 +854,10 @@ isClick = 0; startActivity(new Intent(GoodsDetailActivity.this, ShoppingTrolleyActivity.class)); } // else { // tbLogin(); // } } else if (isClick == 5) { isClick = 0; startActivity(new Intent(GoodsDetailActivity.this, Collect28Activity.class)); } else if (isClick == 7) { sendOrder(); isClick = 0; } else if (isClick == 8) {//复制淘口令 commandCopy(); @@ -1346,12 +906,8 @@ couponUrl = object.optString("couponUrl"); } Log.e("mResult", "getTBLinkInfo():type---" + type + "---isLogin---" + AlibcLogin.getInstance().isLogin()); if ((!StringUtils.isEmpty(from)) && from.equalsIgnoreCase("miandan")) { getGoodsMianDanCouponList(); } else { goBuy(); pd.dismiss(); } goBuy(); pd.dismiss(); } } @@ -1369,8 +925,6 @@ List<TaoBaoGoodsBrief> gList = new ArrayList<>(); RelativeGoodsAdapter gAdapter; List<TaoBaoGoodsBrief> rList = new ArrayList<>(); RelativeGoodsAdapter rAdapter; long lastShareTimeClick = 0; long lastBuyTimeClick = 0; @@ -1416,32 +970,20 @@ case R.id.iv_top_bar_left1: finish(); break; case R.id.iv_share: case R.id.iv_top_bar_right: if (mTopRightPopupWindow.isShowing()) { mTopRightPopupWindow.dismiss(); } else { v_cover2.setVisibility(View.VISIBLE); mTopRightPopupWindow.showAsDropDown(iv_share); } break; case R.id.v_cover2: mTopRightPopupWindow.dismiss(); break; case R.id.tv_top_title1: lv_goods_pic.scrollTo(0, 0); setPosition(1); break; case R.id.tv_top_title2: lv_goods_pic.scrollTo(0, ll_goods_detail_transition_top.getHeight() - titleHeight * 2); lv_goods_pic.scrollTo(0, vp_goods_detail.getHeight() - titleHeight * 2); setPosition(2); break; case R.id.tv_top_title3: lv_goods_pic.scrollTo(0, ll_goods_detail_transition_top.getHeight() + webView.getHeight() - titleHeight + marginTopHeight); lv_goods_pic.scrollTo(0, vp_goods_detail.getHeight() + webView.getHeight() - titleHeight + marginTopHeight); setPosition(3); break; case R.id.tv_top_title4: lv_goods_pic.scrollTo(0, ll_goods_detail_transition_top.getHeight() + webView.getHeight() + ll_guess_like.getHeight() - titleHeight + marginTopHeight); lv_goods_pic.scrollTo(0, vp_goods_detail.getHeight() + webView.getHeight() + ll_guess_like.getHeight() - titleHeight + marginTopHeight); setPosition(4); break; @@ -1450,7 +992,6 @@ return; ll_add_collect.setEnabled(false); if (mInfo == null) { // SingleToast.showToast(GoodsDetailActivity.this, "没有获取到商品收藏状态,请稍等!"); Toast.makeText(GoodsDetailActivity.this, "没有获取到商品收藏状态,请稍等", Toast.LENGTH_SHORT).show(); ll_add_collect.setEnabled(true); break; @@ -1547,7 +1088,6 @@ info.setShopUrl(mInfo.getGoods().getShopInfo().getShopLink()); Gson gson = new GsonBuilder().serializeNulls().create(); String data = gson.toJson(info); GoldPushEventRequest.request(GoodsDetailActivity.this, "inShop", data); break; case R.id.fl_command_copy: if (isLogin) @@ -1768,18 +1308,6 @@ // getTBLinkInfo(getSharedPreferences("user", MODE_PRIVATE).getString("uid", "")); } private void goBuy() { Log.e("mResult", "goBuy():type---" + type); Log.e("mResult", "isNative:" + isNative); isClick = 0; if (mInfo != null && mInfo.getGoods() != null) { GoodsCustomEvent.goodsDetailBuyToTaobao(GoodsDetailActivity.this, mInfo.getGoods().getCouponInfo() == null ? "无券" : "有券"); if (mInfo.getGoods().isHasCoupon()) { mInfo.getGoods().getCouponInfo().setToken(couponUrl); } showGoods(); } } /** * 打开指定链接 @@ -1934,10 +1462,8 @@ GoodsCustomEvent.goodsDetailCollectCancel(GoodsDetailActivity.this); setCollectionData(false); } // SingleToast.showToast(GoodsDetailActivity.this, jsonObject.optString("data")); Toast.makeText(GoodsDetailActivity.this, jsonObject.optString("data"), Toast.LENGTH_SHORT).show(); } else { // SingleToast.showToast(GoodsDetailActivity.this, jsonObject.optString("msg")); Toast.makeText(GoodsDetailActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show(); } } @@ -1950,19 +1476,11 @@ }); } /** * 一键发单 */ private void sendOrder() { GoodsDetailUtil.sendOrder(this, mInfo, goodsId, ll_send_order); } private boolean isFirstLogin = true; private void tbLogin() { final AlibcLogin alibcLogin = AlibcLogin.getInstance(); Log.e("detail", "tbLogin--" + alibcLogin.isLogin()); // if (!alnibcLogin.isLogin()) { isTBStartBind = true; alibcLogin.showLogin(new AlibcLoginCallback() { @@ -1972,13 +1490,8 @@ SharedPreferences.Editor editor = sp.edit(); editor.putString("TrolleyTransformationLink", ""); editor.commit(); // boolean isLogin = sp.getBoolean("isLogin", false); // if (isLogin) { // if (AlibcLogin.getInstance().isLogin()) { // TrolleyTransformationLink transformationLink = new TrolleyTransformationLink(GoodsDetailActivity.this); // transformationLink.getTaoBaoCartConfig("login"); // } // } if (isClick == 4) { startActivity(new Intent(GoodsDetailActivity.this, ShoppingTrolleyActivity.class)); isClick = 0; @@ -2000,7 +1513,6 @@ MobclickAgent.reportError(GoodsDetailActivity.this, "GoodsDetailActivity---code:" + code + "---msg:" + msg); } }); // } } /** @@ -2015,12 +1527,7 @@ Log.e("detail", authLink); if (!StringUtils.isEmpty(authLink)) { GoodsCustomEvent.goodsDetailTaobaoAuth(GoodsDetailActivity.this, isClick == 1 ? "购买" : "分享"); // AlibcTrade.openByUrl(GoodsDetailActivity.this, "", authLink, null, new WebViewClient(), // new WebChromeClient(), alibcShowParams, null, null, // new MiDuoTradeCallback("")); // AlibcTradeUtil.openByUrl(GoodsDetailActivity.this, authLink, null, new WebViewClient(), // new WebChromeClient(), alibcShowParams, null, null); AlibcTradeUtil.openAuthLink(GoodsDetailActivity.this, authLink); } isFirst = false; @@ -2145,7 +1652,6 @@ private void tbBuyLogin() { isTBStartBind = true; // Log.e("mResult", "开始登录"); AlibcLogin.getInstance().showLogin(new AlibcLoginCallback() { @Override @@ -2156,7 +1662,6 @@ @Override public void onFailure(int i, String s) { isClick = 0; // Log.e("mResult", "登录失败"); runOnUiThread(new Runnable() { @Override public void run() { @@ -2187,8 +1692,7 @@ View view = LayoutInflater.from(GoodsDetailActivity.this) .inflate(R.layout.item_goods_detail_top_img, null); ImageView iv = view.findViewById(R.id.iv_goods_img); // Glide.with(mContext).load(cList.get(position)).error(R.drawable.ic_goods_default).placeholder(R.drawable.ic_goods_default).into(iv); ImageLoader.getInstance().displayImage(cList.get(position), iv, options);//暂时注释 Glide.with(getApplicationContext()).load(cList.get(position)).error(R.drawable.ic_goods_default).placeholder(R.drawable.ic_goods_default).into(iv); iv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -2221,19 +1725,6 @@ intent.putExtra("position", position); intent.putExtra("imgList", new Gson().toJson(ImageShowEntity.create(cList))); startActivityForResult(intent, 0); // v_cover.setVisibility(View.VISIBLE); // //透明动画 // ObjectAnimator animator = ObjectAnimator.ofFloat(v_cover, "alpha", 0F, 1F); // animator.setDuration(150);//400 // //为动画设置监听 // animator.addListener(new AnimatorListenerAdapter() { // @Override // public void onAnimationEnd(Animator animation) { // super.onAnimationEnd(animation); // v_cover.setVisibility(View.GONE); // } // }); // animator.start(); } } @@ -2241,7 +1732,6 @@ if (collected) { iv_like_state.setImageResource(R.drawable.icon_collected); tv_like.setText("收藏"); // tv_like.setTextColor(Color.parseColor("#E5005C")); } else { iv_like_state.setImageResource(R.drawable.icon_un_collected); tv_like.setText("收藏"); @@ -2255,160 +1745,11 @@ * @param state */ private void requestState(int state) { fl_content.setVisibility(state == 0 ? View.VISIBLE : View.GONE); ll_content.setVisibility(state == 0 ? View.VISIBLE : View.GONE); ll_no_data.setVisibility(state == 1 ? View.VISIBLE : View.GONE); ll_request_failture.setVisibility(state == 2 ? View.VISIBLE : View.GONE); ll_no_net.setVisibility(state == 3 ? View.VISIBLE : View.GONE); } class ShareExampleAdapter extends BaseAdapter { List<ShareUser> mList; public ShareExampleAdapter(List<ShareUser> list) { mList = list; } @Override public int getCount() { return mList == null ? 0 : mList.size(); } @Override public Object getItem(int position) { return mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View view, ViewGroup parent) { Holder holder = null; if (view == null) { holder = new Holder(); view = LayoutInflater.from(GoodsDetailActivity.this).inflate(R.layout.item_share_example, null); holder.iv_portrait = view.findViewById(R.id.iv_portrait); holder.tv_name = view.findViewById(R.id.tv_name); holder.tv_des = view.findViewById(R.id.tv_des); holder.iv_gift_img = view.findViewById(R.id.iv_gift_img); view.setTag(holder); } else { holder = (Holder) view.getTag(); } Glide.with(GoodsDetailActivity.this).load(mList.get(position).getPicUrl()).placeholder(R.drawable.ic_default_portrait_light) .error(R.drawable.ic_default_portrait_light) .transform(new GlideCircleTransform(GoodsDetailActivity.this)).into(holder.iv_portrait); Glide.with(GoodsDetailActivity.this).load(mList.get(position).getShareBonusPic()).into(holder.iv_gift_img); holder.tv_name.setText(mList.get(position).getName()); String str = mList.get(position).getMsg(); int count = str.indexOf("奖金"); SpannableStringBuilder builder = new SpannableStringBuilder(str); builder.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.detail_sharelist_reward_num)) , count, str.length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE); holder.tv_des.setText(builder); return view; } class Holder { ImageView iv_portrait; TextView tv_name; TextView tv_des; ImageView iv_gift_img; } } private void initPopubWindow(JSONObject jsonObject) { final String helpLink = jsonObject.optString("helpLink"); View customView = getLayoutInflater().inflate(R.layout.item_show_free_single_coupon, null, false); // 创建PopupWindow实例,200,150分别是宽度和高度 float height = SystemCommon.getScreenHeight(this); final PopupWindow pw_free_single_ticket = new PopupWindow(customView, ViewGroup.LayoutParams.MATCH_PARENT, (int) (height * 0.75), true); // 设置动画效果 [R.style.AnimationFade 是自己事先定义好的] // pw_filter.setAnimationStyle(R.style.pop_multiple); pw_free_single_ticket.setTouchable(true); pw_free_single_ticket.setOutsideTouchable(true); pw_free_single_ticket.setFocusable(false); pw_free_single_ticket.setAnimationStyle(R.style.bottomstyle); TextView tv_free_single_coupon_num = customView.findViewById(R.id.tv_free_single_ticket_num); LinearLayout ll_no_ticket = customView.findViewById(R.id.ll_no_ticket); TextView tv_confirm = customView.findViewById(R.id.tv_confirm); RecyclerView rv_free_single_ticket = customView.findViewById(R.id.rv_free_single_ticket); TextView tv_limit = new TextView(this); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); tv_limit.setLayoutParams(params); tv_limit.setTextColor(Color.parseColor(jsonObject.optJSONObject("tip").optString("fontColor"))); tv_limit.setTextSize(14); tv_limit.setGravity(Gravity.CENTER); tv_limit.setText(jsonObject.optJSONObject("tip").optString("content")); tv_limit.setPadding(0, DimenUtils.dip2px(this, 16), 0, 0); tv_free_single_coupon_num.setText("剩余" + jsonObject.optString("count") + "张免单券"); LinearLayoutManager manager = new LinearLayoutManager(this); rv_free_single_ticket.setLayoutManager(manager); DividerItemDecoration decoration = new DividerItemDecoration(); decoration.setSize(DimenUtils.dip2px(this, 8)); rv_free_single_ticket.addItemDecoration(decoration); Gson gson = new GsonBuilder().serializeNulls().create(); final List<FreeSingleTicket> fList = gson.fromJson(jsonObject.optJSONArray( "list").toString(), new TypeToken<List<FreeSingleTicket>>() { }.getType()); if (fList == null || fList.size() == 0) { rv_free_single_ticket.setVisibility(View.GONE); ll_no_ticket.setVisibility(View.VISIBLE); } else { rv_free_single_ticket.setVisibility(View.VISIBLE); ll_no_ticket.setVisibility(View.GONE); } final FreeSingleTicketAdapter adapter = new FreeSingleTicketAdapter(this, fList, helpLink); rv_free_single_ticket.setAdapter(adapter); adapter.addHeaderView(tv_limit); tv_confirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pw_free_single_ticket.dismiss(); v_cover1.setVisibility(View.GONE); FreeSingleTicket info = null;//选中的免单券 for (int i = 0; i < adapter.mCBFlag.size(); i++) { if (adapter.mCBFlag.get(i)) { info = fList.get(i); } } if (info != null) { useFreeSingleTicket(info); } } }); pw_free_single_ticket.setOnDismissListener(new PopupWindow.OnDismissListener() { @Override public void onDismiss() { v_cover1.setVisibility(View.GONE); } }); v_cover1.setOnClickListener(new View.OnClickListener() {//设置背景空点击事件 @Override public void onClick(View v) { v_cover1.setVisibility(View.GONE); } }); pw_free_single_ticket.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM, 0, 0); v_cover1.setVisibility(View.VISIBLE); isClick = 0; } @Override protected void onDestroy() { @@ -2424,78 +1765,14 @@ @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); } @Override public void onWbShareCancel() { Toast.makeText(this, "分享取消", Toast.LENGTH_LONG).show(); } @Override public void onWbShareFail() { Toast.makeText(this, "分享失败", Toast.LENGTH_LONG).show(); } @Override public void onWbShareSuccess() { Toast.makeText(this, "分享成功", Toast.LENGTH_LONG).show(); } /** * 返回 是否进入 删除区域 * * @param Width 宽度距离判断(购物车到达指定宽度 true,否则false) * @param Heigh 高度距离判断(购物车到达指定高度 true,否则false) */ @Override public void isReturn(boolean Width, boolean Heigh) { if (Width && Heigh) { acbutton.setVisibility(View.GONE); // img.setVisibility(View.GONE); if (acbutton.getVisibility() == View.GONE) { acbutton.postDelayed(new Runnable() { @Override public void run() { img.setVisibility(View.GONE); // 购物车隐藏 RecordImageTextVideo textVideo = new RecordImageTextVideo(GoodsDetailActivity.this); textVideo.setLocalCart_float(1);//不在显示购物车 } }, 200); } } } /** * 显示状态 * * @param isDrag 移动状态(购物车移动true,停止false) * @param display 是否显示(购物车显示true,隐藏 false) */ @Override public void isDrag(boolean isDrag, boolean display) { //移动中 if (isDrag) { img.setVisibility(View.VISIBLE); } else {//停止移动 if (display) {//显示 img.setVisibility(View.VISIBLE); } else {//隐藏 img.setVisibility(View.GONE); } } } /** * 百川详情页跳转网页 */ private void jumpWeb(String url) { alibcShowParams.setNativeOpenFailedMode(AlibcFailModeType.AlibcNativeFailModeJumpBROWER); // AlibcTrade.openByUrl(GoodsDetailActivity.this, "", // url, null, new WebViewClient(), new WebChromeClient(), // alibcShowParams, alibcTaokeParams, exParams, new MiDuoTradeCallback("")); AlibcTradeSDK.setTaokeParams(alibcTaokeParams); AlibcTradeUtil.openByUrl(GoodsDetailActivity.this, url, null, new WebViewClient(), new WebChromeClient(), @@ -2510,4 +1787,61 @@ new WebViewClient(), new WebChromeClient(), "", alibcShowParams, alibcTaokeParams, exParams, new MiDuoTradeCallback("")); } private void goFanli() { goodsDetailPreEventManager.startClick(0, new GoodsDetailPreEventManager.IPreEventListener() { @Override public void onPreSuccess() { } }); //判断是否有多张券情况 } private void goBuy() { goodsDetailPreEventManager.startClick(1, new GoodsDetailPreEventManager.IPreEventListener() { @Override public void onPreSuccess() { showGoods(); } }); } private void setRightsData(boolean coupon, String money, String desc, String link) { LayoutInflater inflater = LayoutInflater.from(this); View root = inflater.inflate(R.layout.item_goods_detail_rights, null); AQuery query = new AQuery(root); GradientDrawable gd = new GradientDrawable(); gd.setCornerRadius(DimenUtils.dip2px(getApplicationContext(), 10)); TextView tv_money = query.id(R.id.tv_money).getTextView(); TextView tv_desc = query.id(R.id.tv_desc).getTextView(); if (coupon) { gd.setColors(new int[]{Color.parseColor("#FFEF9A"), Color.parseColor("#FFFFFF")}); tv_money.setTextColor(Color.parseColor("#FFB218")); tv_desc.setTextColor(Color.parseColor("#FFB218")); } else { gd.setColors(new int[]{Color.parseColor("#FFE4E8"), Color.parseColor("#FFFFFF")}); tv_money.setTextColor(Color.parseColor("#FF2B4B")); tv_desc.setTextColor(Color.parseColor("#FF2B4B")); } ((LinearLayout) query.id(R.id.ll_content).getView()).setBackground(gd); if (!StringUtils.isNullOrEmpty(link)) { tv_desc.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); } SpannableString moneyString = new SpannableString(money); moneyString.setSpan(new RelativeSizeSpan(1.5f), 1, (money.indexOf(".") > -1 ? money.indexOf(".") : money.length()), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); tv_money.setText(moneyString); tv_desc.setText(desc); } } app/src/main/java/com/tejia/lijin/app/util/GoodsBuyJumpUtil.java
@@ -1,5 +1,6 @@ package com.tejia.lijin.app.util; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.content.Intent; @@ -90,7 +91,7 @@ try { if (link.is_native() && !StringUtils.isNullOrEmpty(link.getNativeJumpLink())&&ApkUtil.checkAPP(context, "com.jingdong.app.mall")) { if (link.is_native() && !StringUtils.isNullOrEmpty(link.getNativeJumpLink()) && ApkUtil.checkAPP(context, "com.jingdong.app.mall")) { KeplerApiManager.getWebViewService().openAppWebViewPage(context, link.getNativeJumpLink(), new KeplerAttachParameter(), mOpenAppAction); return; } @@ -116,6 +117,75 @@ } finally { if (dialog != null && dialog.isShowing()) dialog.dismiss(); } } public static void jumpJD(final Activity activity, GoodsConvertLinkJumpLink link, final IJumpResult jumpResult) { if (link == null) return; if (activity == null) { return; } OpenAppAction mOpenAppAction = new OpenAppAction() { @Override public void onStatus(final int status, final String url) { if (activity != null) activity.runOnUiThread(new Runnable() { @Override public void run() { if (status == OpenAppAction.OpenAppAction_result_APP) { //呼京东成功 Log.e("mResult", "呼京东成功"); jumpResult.onSuccess(); } else if (status == OpenAppAction.OpenAppAction_start) { //开始状态未必一定执行, Log.e("mResult", "开始呼起京东"); } else { //唤起京东失败 Log.e("mResult", "唤起京东失败" + status); Intent intent = new Intent(activity, ShareBrowserActivity.class); intent.putExtra("url", url); intent.putExtra("interceptGoodsDetail", false); activity.startActivity(intent); jumpResult.onFail("唤起京东失败"); } } }); } }; try { if (link.is_native() && !StringUtils.isNullOrEmpty(link.getNativeJumpLink()) && ApkUtil.checkAPP(activity, "com.jingdong.app.mall")) { KeplerApiManager.getWebViewService().openAppWebViewPage(activity, link.getNativeJumpLink(), new KeplerAttachParameter(), mOpenAppAction); return; } if (link.getWxxcxJumpInfo() != null) { try { WXUtil.jumpWXXCX(activity, link.getWxxcxJumpInfo().getUserName(), link.getWxxcxJumpInfo().getPath()); return; } catch (Exception e) { //最后跳转网页 Intent intent = new Intent(activity, ShareBrowserActivity.class); intent.putExtra("url", link.getJumpLink()); intent.putExtra("interceptGoodsDetail", false); activity.startActivity(intent); } } Intent intent = new Intent(activity, ShareBrowserActivity.class); intent.putExtra("url", link.getJumpLink()); intent.putExtra("interceptGoodsDetail", false); activity.startActivity(intent); } finally { jumpResult.onSuccess(); } } @@ -155,7 +225,6 @@ } public static void jumpSuning(Context context, GoodsConvertLinkJumpLink link) { if (context == null) return; @@ -190,4 +259,11 @@ } public static interface IJumpResult { public void onSuccess(); public void onFail(String msg); } } app/src/main/java/com/tejia/lijin/app/util/SetLabels.java
@@ -34,7 +34,33 @@ gradientDrawable.setStroke(DimenUtils.dip2px(mContext, 0.5f), Color.parseColor(list.get(i).getColor())); gradientDrawable.setColor(mContext.getResources().getColor(R.color.white)); tv_label.setBackgroundDrawable(gradientDrawable); tv_label.setBackground(gradientDrawable); tv_label.setPadding(DimenUtils.dip2px(mContext, 5), 2, DimenUtils.dip2px(mContext, 5), 3); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); if (i != 0) params.leftMargin = DimenUtils.dip2px(mContext, 5); tv_label.setLayoutParams(params); tv_label.setEllipsize(TextUtils.TruncateAt.END); tv_label.setTextSize(fontSizeSP); tv_label.setTextColor(Color.parseColor(list.get(i).getColor())); tv_label.setText(list.get(i).getContent()); ll_content.addView(tv_label); } } public static void addGoodsTypeLabel(Context mContext, LinearLayout ll_content, List<Label> list,int fontSizeSP) { for (int i = 0; i < list.size(); i++) { TextView tv_label = new TextView(mContext); tv_label.setSingleLine(true); GradientDrawable gradientDrawable = new GradientDrawable(); gradientDrawable.setCornerRadius(DimenUtils.dip2px(mContext, 8)); gradientDrawable.setStroke(DimenUtils.dip2px(mContext, 1), Color.parseColor(list.get(i).getColor())); gradientDrawable.setColor(mContext.getResources().getColor(R.color.white)); tv_label.setBackground(gradientDrawable); tv_label.setPadding(DimenUtils.dip2px(mContext, 5), 2, DimenUtils.dip2px(mContext, 5), 3); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( app/src/main/java/com/tejia/lijin/app/util/baichuan/AlibcTradeUtil.java
@@ -126,4 +126,32 @@ } public static void openAuthLink(Activity activity, String authUrl,AlibcTradeCallback alibcTradeCallback) { AlibcShowParams showParams = new AlibcShowParams(); showParams.setOpenType(OpenType.Auto); showParams.setNativeOpenFailedMode(AlibcFailModeType.AlibcNativeFailModeJumpDOWNLOAD); //设置返回小把手 showParams.setBackUrl("alisdk://"); Log.i(TAG, "openAuthLink-start"); WebViewClient client = new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { Log.i(TAG, "shouldOverrideUrlLoading"); return super.shouldOverrideUrlLoading(view, request); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Log.i(TAG, url); return super.shouldOverrideUrlLoading(view, url); } }; AlibcTrade.openByUrl(activity, "", authUrl, null, client, null, showParams, null, null, alibcTradeCallback); } } app/src/main/java/com/tejia/lijin/app/util/goods/GoodsBuyUtil.java
New file @@ -0,0 +1,374 @@ package com.tejia.lijin.app.util.goods; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.webkit.WebChromeClient; import android.webkit.WebViewClient; import android.widget.Toast; import com.alibaba.baichuan.android.trade.AlibcTradeSDK; import com.alibaba.baichuan.android.trade.model.AlibcShowParams; import com.alibaba.baichuan.android.trade.model.OpenType; import com.alibaba.baichuan.android.trade.page.AlibcDetailPage; import com.alibaba.baichuan.trade.biz.AlibcConstants; import com.alibaba.baichuan.trade.biz.applink.adapter.AlibcFailModeType; import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams; import com.alibaba.baichuan.trade.biz.login.AlibcLogin; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.tejia.lijin.app.BasicTextHttpResponseHandler; import com.tejia.lijin.app.ShoppingApi; import com.tejia.lijin.app.entity.TbPidInfo; import com.tejia.lijin.app.entity.common.GoodsConvertLinkJumpLink; import com.tejia.lijin.app.ui.recommend.GoodsDetailActivityJD; import com.tejia.lijin.app.ui.recommend.GoodsDetailActivityPDD; import com.tejia.lijin.app.ui.recommend.GoodsDetailActivitySuning; import com.tejia.lijin.app.ui.recommend.GoodsDetailActivityTB; import com.tejia.lijin.app.ui.recommend.GoodsDetailActivityVIP; import com.tejia.lijin.app.util.Constant; import com.tejia.lijin.app.util.GoodsBuyJumpUtil; import com.tejia.lijin.app.util.baichuan.AlibcTradeUtil; import com.tejia.lijin.app.util.user.UserUtil; import com.wpc.library.util.common.StringUtils; import org.apache.http.Header; import org.json.JSONObject; import java.util.HashMap; import java.util.Map; public class GoodsBuyUtil { /** * 商品购买 * @param activity * @param context * @param requestInfo * @param resultListener */ public static void buy(Activity activity, Context context, GoodsBuyRequestInfo requestInfo, IBuyGoodsResultListener resultListener) { switch (requestInfo.getGoodsType()) { case Constant.GOODS_TYPE_TB: buyTB(activity, context, requestInfo, resultListener); break; case Constant.GOODS_TYPE_JD: buyJD(activity, requestInfo, resultListener); break; case Constant.GOODS_TYPE_PDD: buyPDD(context, requestInfo, resultListener); break; case Constant.GOODS_TYPE_VIP: buyVIP(context, requestInfo, resultListener); break; case Constant.GOODS_TYPE_SUNING: buySuning(context, requestInfo, resultListener); break; } } /** * 打开指定链接 */ private static void jumpTB(Activity activity, TbPidInfo tInfo, String clickUrl, String couponUrl, final IBuyGoodsResultListener buyGoodsResultListener) { AlibcShowParams alibcShowParams = new AlibcShowParams(); alibcShowParams.setOpenType(OpenType.Auto); alibcShowParams.setBackUrl("alisdk://"); alibcShowParams.setNativeOpenFailedMode(AlibcFailModeType.AlibcNativeFailModeJumpBROWER); AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams("", "", ""); if (tInfo != null) { alibcTaokeParams = new AlibcTaokeParams("", "", ""); alibcTaokeParams.setPid(tInfo.getPid()); alibcTaokeParams.setAdzoneid(tInfo.getAdZoneId()); alibcTaokeParams.pid = tInfo.getPid(); alibcTaokeParams.adzoneid = tInfo.getAdZoneId(); alibcTaokeParams.extraParams = new HashMap<>(); alibcTaokeParams.extraParams.put("taokeAppkey", tInfo.getAppKey()); } Map<String, String> exParams = new HashMap<>(); exParams.put(AlibcConstants.ISV_CODE, "appisvcode"); exParams.put("alibaba", "阿里巴巴");//自定义参数部分,可任意增删改 if (!StringUtils.isEmpty(clickUrl) || !StringUtils.isEmpty(couponUrl)) { String url = (!StringUtils.isEmpty(couponUrl)) ? couponUrl : clickUrl; AlibcTradeSDK.setTaokeParams(alibcTaokeParams); buyGoodsResultListener.onJumpThirdAppStart(); AlibcTradeUtil.openByUrl(activity, url, null, new WebViewClient(), new WebChromeClient(), alibcShowParams, alibcTaokeParams, null); } } private static void buyTB(final Activity activity, final Context context, GoodsBuyRequestInfo requestInfo, final IBuyGoodsResultListener buyGoodsResultListener) { ShoppingApi.getTBLinkInfo(context, requestInfo.getUid(), requestInfo.getGoodsId(), requestInfo.getFrom(), "", new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { Gson gson = new GsonBuilder().serializeNulls().create(); TbPidInfo tInfo = null; String clickUrl = null; String couponUrl = null; if (jsonObject.optJSONObject("data").optJSONObject("tbPidInfo") != null) tInfo = gson.fromJson(jsonObject.optJSONObject("data").optJSONObject("tbPidInfo").toString(), TbPidInfo.class); JSONObject object = jsonObject.optJSONObject("data").optJSONObject("link"); if (object != null) { clickUrl = object.optString("clickUrl"); couponUrl = object.optString("couponUrl"); } buyGoodsResultListener.onConvertLinkSuccess(); jumpTB(activity, tInfo, clickUrl, couponUrl, buyGoodsResultListener); } else { buyGoodsResultListener.onConvertLinkFail(jsonObject.optString("msg")); } } @Override public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) { super.onFailure(statusCode, headers, jsonObject, e); buyGoodsResultListener.onConvertLinkFail("请求网络出错"); } @Override public void onStart() { super.onStart(); buyGoodsResultListener.onConvertLinkStart(); } @Override public void onFinish() { super.onFinish(); buyGoodsResultListener.onConvertLinkComplete(); } }); } private static void buyJD(final Activity activity, GoodsBuyRequestInfo requestInfo, final IBuyGoodsResultListener buyGoodsResultListener) { ShoppingApi.getJDLinkInfo(activity, requestInfo.getUid(), requestInfo.getGoodsId(), requestInfo.getFrom(), "", requestInfo.getCouponLink(), new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { GoodsConvertLinkJumpLink jumpLink = new Gson().fromJson(jsonObject.optJSONObject("data").toString(), GoodsConvertLinkJumpLink.class); buyGoodsResultListener.onJumpThirdAppStart(); GoodsBuyJumpUtil.jumpJD(activity, jumpLink, new GoodsBuyJumpUtil.IJumpResult() { @Override public void onSuccess() { buyGoodsResultListener.onJumpThirdAppSuccess(); } @Override public void onFail(String msg) { buyGoodsResultListener.onJumpThirdAppFail(); } }); } else { buyGoodsResultListener.onConvertLinkFail(jsonObject.optString("msg")); } } @Override public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) { super.onFailure(statusCode, headers, jsonObject, e); buyGoodsResultListener.onConvertLinkFail("请求网络出错"); } @Override public void onStart() { super.onStart(); buyGoodsResultListener.onConvertLinkStart(); } @Override public void onFinish() { super.onFinish(); buyGoodsResultListener.onConvertLinkComplete(); } }); } private static void buyPDD(final Context context, GoodsBuyRequestInfo requestInfo, final IBuyGoodsResultListener buyGoodsResultListener) { ShoppingApi.getPDDLinkInfo(context, requestInfo.getUid(), requestInfo.getGoodsId(), requestInfo.getFrom(), "", new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { GoodsConvertLinkJumpLink pddJumpLink = new Gson().fromJson(jsonObject.optJSONObject("data").toString(), GoodsConvertLinkJumpLink.class); buyGoodsResultListener.onJumpThirdAppStart(); GoodsBuyJumpUtil.jumpPDD(context, pddJumpLink); } else { buyGoodsResultListener.onConvertLinkFail(jsonObject.optString("msg")); } } @Override public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) { super.onFailure(statusCode, headers, jsonObject, e); buyGoodsResultListener.onConvertLinkFail("请求网络出错"); } @Override public void onStart() { super.onStart(); buyGoodsResultListener.onConvertLinkStart(); } @Override public void onFinish() { super.onFinish(); buyGoodsResultListener.onConvertLinkComplete(); } }); } private static void buyVIP(final Context context, GoodsBuyRequestInfo requestInfo, final IBuyGoodsResultListener buyGoodsResultListener) { ShoppingApi.getVIPLinkInfo(context, requestInfo.getUid(), requestInfo.getGoodsId(), requestInfo.getFrom(), "", new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { GoodsConvertLinkJumpLink jumpLink = new Gson().fromJson(jsonObject.optJSONObject("data").toString(), GoodsConvertLinkJumpLink.class); buyGoodsResultListener.onJumpThirdAppStart(); GoodsBuyJumpUtil.jumpVIPShop(context, jumpLink); } else { buyGoodsResultListener.onConvertLinkFail(jsonObject.optString("msg")); } } @Override public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) { super.onFailure(statusCode, headers, jsonObject, e); buyGoodsResultListener.onConvertLinkFail("请求网络出错"); } @Override public void onStart() { super.onStart(); buyGoodsResultListener.onConvertLinkStart(); } @Override public void onFinish() { super.onFinish(); buyGoodsResultListener.onConvertLinkComplete(); } }); } private static void buySuning(final Context context, GoodsBuyRequestInfo requestInfo, final IBuyGoodsResultListener buyGoodsResultListener) { ShoppingApi.getSuningLinkInfo(context, requestInfo.getUid(), requestInfo.getGoodsId(), requestInfo.getFrom(), "", new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { GoodsConvertLinkJumpLink jumpLink = new Gson().fromJson(jsonObject.optJSONObject("data").toString(), GoodsConvertLinkJumpLink.class); buyGoodsResultListener.onJumpThirdAppStart(); GoodsBuyJumpUtil.jumpSuning(context, jumpLink); } else { buyGoodsResultListener.onConvertLinkFail(jsonObject.optString("msg")); } } @Override public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) { super.onFailure(statusCode, headers, jsonObject, e); buyGoodsResultListener.onConvertLinkFail("请求网络出错"); } @Override public void onStart() { super.onStart(); buyGoodsResultListener.onConvertLinkStart(); } @Override public void onFinish() { super.onFinish(); buyGoodsResultListener.onConvertLinkComplete(); } }); } /** * 商品购买请求参数 */ static class GoodsBuyRequestInfo { private int goodsType; private String goodsId; private String couponLink; private String uid; private String from; public int getGoodsType() { return goodsType; } public void setGoodsType(int goodsType) { this.goodsType = goodsType; } public String getGoodsId() { return goodsId; } public void setGoodsId(String goodsId) { this.goodsId = goodsId; } public String getCouponLink() { return couponLink; } public void setCouponLink(String couponLink) { this.couponLink = couponLink; } public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } } public static interface IBuyGoodsResultListener { public void onConvertLinkStart(); public void onConvertLinkSuccess(); public void onConvertLinkFail(String msg); public void onConvertLinkComplete(); public void onJumpThirdAppStart(); public void onJumpThirdAppSuccess(); public void onJumpThirdAppFail(); } } app/src/main/res/drawable-xhdpi/ic_goods_detail_hongbao_detail_fanli.png
app/src/main/res/drawable-xhdpi/ic_goods_detail_hongbao_detail_hb.png
app/src/main/res/drawable-xhdpi/icon_goods_detail_back.png
app/src/main/res/drawable-xhdpi/icon_goods_detail_hongbao_fanli.png
app/src/main/res/drawable-xhdpi/icon_goods_detail_hongbao_fanli_more.png
app/src/main/res/drawable-xhdpi/icon_goods_detail_hongbao_hb.png
app/src/main/res/drawable-xhdpi/icon_goods_detail_hongbao_hb_more.png
app/src/main/res/drawable-xhdpi/icon_goods_detail_hongbao_input.png
app/src/main/res/drawable/shape_go_fanli_full.xml
@@ -1,9 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="40dp" /> <corners android:radius="40dp" /> <padding android:bottom="2dp" android:top="2dp"></padding> <solid android:color="@color/theme" /> <solid android:color="#55B00B" /> </shape> app/src/main/res/layout/activity_goods_detail_new.xml
@@ -1,1080 +1,895 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/page_bg_color" android:orientation="vertical"> <FrameLayout <LinearLayout android:id="@+id/ll_content" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> android:layout_height="match_parent" android:orientation="vertical"> <ScrollView <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> android:layout_height="0dp" android:layout_weight="1"> <LinearLayout <com.wpc.library.widget.MyScrollView android:id="@+id/lv_goods_pic" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_height="match_parent" android:orientation="vertical"> <com.wpc.library.widget.RatioLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" app:ratio="1"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <androidx.viewpager.widget.ViewPager android:id="@+id/vp_goods_img" android:layout_width="match_parent" android:layout_height="match_parent"></androidx.viewpager.widget.ViewPager> <TextView android:id="@+id/tv_page_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_margin="20dp" android:background="@drawable/shape_black_corner" android:paddingLeft="10dp" android:paddingTop="2dp" android:paddingRight="10dp" android:paddingBottom="2dp" android:textColor="@color/white" /> </FrameLayout> </com.wpc.library.widget.RatioLayout> <include layout="@layout/item_yellow_notice" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="12dp" android:layout_marginRight="10dp" android:background="@drawable/shape_goods_detail_item_bg" android:orientation="vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/iv_goods_type" android:layout_width="wrap_content" android:layout_height="15dp" android:layout_gravity="left|center_vertical" android:src="@drawable/ic_tmall"></ImageView> <TextView android:id="@+id/tv_sales_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|center_vertical" android:text="月销 8569" android:textColor="#ff888888" android:textSize="13sp" /> </FrameLayout> <TextView android:id="@+id/tv_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="春装2021年新款女中袖上衣v领洋气半袖针织衫不规则百搭打底毛衣" android:textColor="#ff000000" android:textSize="16sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_address" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="12dp" android:layout_marginRight="10dp" android:background="@drawable/shape_goods_detail_item_bg"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发货地" android:textColor="#ff888888" android:textSize="13sp" /> <TextView android:id="@+id/tv_address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="11dp" android:text="重庆市·江北区" android:textColor="#ff000000" android:textSize="13sp" /> </LinearLayout> <!-- 权益类型 --> <LinearLayout android:id="@+id/ll_rights_type" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="12dp" android:layout_marginRight="10dp" android:background="@drawable/shape_goods_detail_item_bg"> <com.wpc.library.widget.MyGridView android:id="@+id/gv_rights_type" android:layout_width="match_parent" android:layout_height="wrap_content" android:horizontalSpacing="10dp" android:numColumns="3" android:verticalSpacing="10dp"></com.wpc.library.widget.MyGridView> </LinearLayout> <!-- 价格信息 --> <LinearLayout android:id="@+id/ll_price" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="12dp" android:layout_marginRight="10dp" android:background="@drawable/shape_goods_detail_item_bg"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_goods_detail_hongbao_high_level_bg"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="64dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:paddingLeft="12dp" android:paddingRight="12dp"> <TextView android:id="@+id/tv_sub_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="19dp" android:text="¥8.88" android:textColor="#ffffffff" android:textSize="12sp" /> <View android:layout_width="0dp" android:layout_height="1px" android:layout_weight="1"></View> <TextView android:id="@+id/tv_final_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="¥28.9" android:textColor="#ffffffff" android:textSize="12sp" /> </LinearLayout> <TextView android:id="@+id/tv_more" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|center_horizontal" android:layout_marginBottom="3dp" android:text="更多"> </TextView> </FrameLayout> <LinearLayout android:id="@+id/ll_hongbao_detail" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="3.5dp" android:layout_marginRight="3.5dp" android:layout_marginBottom="3.5dp" android:paddingLeft="20dp" android:paddingRight="20dp"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"> <LinearLayout android:id="@+id/ll_money_0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_money_name_0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_money_0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> <View android:id="@+id/v_hongbao_cut_0" android:layout_width="0dp" android:layout_height="1px" android:layout_weight="1"></View> <LinearLayout android:id="@+id/ll_money_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_money_name_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_money_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> <View android:id="@+id/v_hongbao_cut_1" android:layout_width="0dp" android:layout_height="1px" android:layout_weight="1"></View> <LinearLayout android:id="@+id/ll_money_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_money_name_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_money_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> <View android:id="@+id/v_hongbao_cut_2" android:layout_width="0dp" android:layout_height="1px" android:layout_weight="1"></View> <LinearLayout android:id="@+id/ll_money_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_money_name_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_money_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="=" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_actual_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="left|top" android:gravity="center_vertical"> <ImageView android:id="@+id/iv_level" android:layout_width="wrap_content" android:layout_height="12.5dp"></ImageView> <TextView android:id="@+id/tv_level_desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:text="升级为铂金会员红包可提高100%" android:textColor="#ffffffff" android:textSize="8sp" /> </LinearLayout> </FrameLayout> </LinearLayout> <LinearLayout android:id="@+id/ll_shop" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_marginRight="10dp" android:background="@drawable/shape_goods_detail_item_bg" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_gravity="center" android:gravity="center_vertical" android:orientation="horizontal"> android:layout_height="wrap_content" android:orientation="vertical"> <FrameLayout android:layout_width="50dp" android:layout_height="50dp" android:layout_gravity="center_vertical" android:layout_marginRight="10dp" android:background="@drawable/shape_detail_shop_gray_corner"> <com.wpc.library.widget.RatioLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" app:ratio="1"> <ImageView android:id="@+id/iv_shop_img" <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" /> android:gravity="center"> <androidx.viewpager.widget.ViewPager android:id="@+id/vp_goods_img" android:layout_width="match_parent" android:layout_height="match_parent"></androidx.viewpager.widget.ViewPager> <TextView android:id="@+id/tv_page_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_margin="20dp" android:background="@drawable/shape_black_corner" android:paddingLeft="10dp" android:paddingTop="2dp" android:paddingRight="10dp" android:paddingBottom="2dp" android:textColor="@color/white" /> </FrameLayout> </com.wpc.library.widget.RatioLayout> <include layout="@layout/item_yellow_notice" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="12dp" android:layout_marginRight="10dp" android:background="@drawable/shape_goods_detail_item_bg" android:orientation="vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/ll_labels" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left|center_vertical" android:orientation="vertical"> </LinearLayout> <TextView android:id="@+id/tv_sales_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|center_vertical" android:text="月销 8569" android:textColor="#ff888888" android:textSize="13sp" /> </FrameLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/tv_shop_name" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:gravity="center_vertical" android:textColor="@color/text_black_1" android:textSize="14sp" /> <TextView android:id="@+id/tv_shop_see" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:drawableRight="@drawable/ic_player_input" android:drawablePadding="8dp" android:text="查看店铺" android:textColor="@color/gray2" android:visibility="gone" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_shop_des" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="宝贝描述" android:textColor="@color/text_black_1" android:textSize="11sp" /> <TextView android:id="@+id/tv_shop_des_grade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:background="@drawable/shape_shop_score_grade" android:paddingLeft="3dp" android:paddingRight="3dp" android:textColor="@color/white" android:textSize="10sp" /> </LinearLayout> <View android:layout_width="1px" android:layout_height="0dp" android:layout_weight="1"></View> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_shop_service" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="卖家服务" android:textColor="@color/text_black_1" android:textSize="11sp" /> <TextView android:id="@+id/tv_shop_service_grade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:background="@drawable/shape_shop_score_grade" android:paddingLeft="3dp" android:paddingRight="3dp" android:textColor="@color/white" android:textSize="10sp" /> </LinearLayout> <View android:layout_width="1px" android:layout_height="0dp" android:layout_weight="1"></View> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_shop_logistics" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="物流服务" android:textColor="@color/text_black_1" android:textSize="11sp" /> <TextView android:id="@+id/tv_shop_logistics_grade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:background="@drawable/shape_shop_score_grade" android:paddingLeft="3dp" android:paddingRight="3dp" android:textColor="@color/white" android:textSize="10sp" /> </LinearLayout> </LinearLayout> <TextView android:id="@+id/tv_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="春装2021年新款女中袖上衣v领洋气半袖针织衫不规则百搭打底毛衣" android:textColor="#ff000000" android:textSize="16sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_address" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="12dp" android:layout_marginRight="10dp" android:background="@drawable/shape_goods_detail_item_bg"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发货地" android:textColor="#ff888888" android:textSize="13sp" /> <TextView android:id="@+id/tv_address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="11dp" android:text="重庆市·江北区" android:textColor="#ff000000" android:textSize="13sp" /> </LinearLayout> <!-- 权益类型 --> <LinearLayout android:id="@+id/ll_rights_type" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="12dp" android:layout_marginRight="10dp" android:background="@drawable/shape_goods_detail_item_bg"> <com.tejia.lijin.app.util.FlowLayout android:id="@+id/fl_rights_type" android:layout_width="match_parent" android:layout_height="wrap_content"></com.tejia.lijin.app.util.FlowLayout> </LinearLayout> <!-- 价格信息 --> <LinearLayout android:id="@+id/ll_price" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="12dp" android:layout_marginRight="10dp" android:background="@drawable/shape_goods_detail_item_bg"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_price_info" android:layout_width="match_parent" android:layout_height="wrap_content"></androidx.recyclerview.widget.RecyclerView> </LinearLayout> <LinearLayout android:id="@+id/ll_shop" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_marginRight="10dp" android:background="@drawable/shape_goods_detail_item_bg" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_gravity="center" android:gravity="center_vertical" android:orientation="horizontal"> <FrameLayout android:layout_width="50dp" android:layout_height="50dp" android:layout_gravity="center_vertical" android:layout_marginRight="10dp" android:background="@drawable/shape_detail_shop_gray_corner"> <ImageView android:id="@+id/iv_shop_img" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" /> </FrameLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/tv_shop_name" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:gravity="center_vertical" android:textColor="@color/text_black_1" android:textSize="14sp" /> <TextView android:id="@+id/tv_shop_see" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:drawableRight="@drawable/ic_player_input" android:drawablePadding="8dp" android:text="查看店铺" android:textColor="@color/gray2" android:visibility="gone" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_shop_des" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="宝贝描述" android:textColor="@color/text_black_1" android:textSize="11sp" /> <TextView android:id="@+id/tv_shop_des_grade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:background="@drawable/shape_shop_score_grade" android:paddingLeft="3dp" android:paddingRight="3dp" android:textColor="@color/white" android:textSize="10sp" /> </LinearLayout> <View android:layout_width="1px" android:layout_height="0dp" android:layout_weight="1"></View> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_shop_service" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="卖家服务" android:textColor="@color/text_black_1" android:textSize="11sp" /> <TextView android:id="@+id/tv_shop_service_grade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:background="@drawable/shape_shop_score_grade" android:paddingLeft="3dp" android:paddingRight="3dp" android:textColor="@color/white" android:textSize="10sp" /> </LinearLayout> <View android:layout_width="1px" android:layout_height="0dp" android:layout_weight="1"></View> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_shop_logistics" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="物流服务" android:textColor="@color/text_black_1" android:textSize="11sp" /> <TextView android:id="@+id/tv_shop_logistics_grade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:background="@drawable/shape_shop_score_grade" android:paddingLeft="3dp" android:paddingRight="3dp" android:textColor="@color/white" android:textSize="10sp" /> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> <FrameLayout android:id="@+id/fl_goods_detail" android:layout_width="match_parent" android:layout_height="48dp" android:layout_gravity="center" android:layout_marginTop="10dp" android:background="@color/white"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|left" android:layout_marginLeft="10dp" android:gravity="center" android:text="查看宝贝详情" android:textColor="#444444" android:textSize="16sp" /> <ImageView android:id="@+id/iv_imgtext_status" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|right" android:layout_marginRight="10dp" android:src="@drawable/ic_detail_img_open" /> </FrameLayout> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="wrap_content" android:visibility="visible" /> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical"> <include layout="@layout/item_recyclerview_bottom" /> </FrameLayout> <LinearLayout android:id="@+id/ll_guess_like" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="8dp" android:background="@color/register_gray" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="46dp" android:background="#FFFFFF" android:gravity="center" android:text="猜你喜欢" android:textColor="#ff444444" android:textSize="15sp" /> <com.wpc.library.widget.MyGridView android:id="@+id/gv_guess_like" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginTop="4dp" android:layout_marginRight="4dp" android:background="@color/register_gray" android:columnWidth="3dp" android:horizontalSpacing="4dp" android:numColumns="2" android:verticalSpacing="4dp"></com.wpc.library.widget.MyGridView> </LinearLayout> </LinearLayout> </com.wpc.library.widget.MyScrollView> <!--状态栏1--> <LinearLayout android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center_vertical" android:orientation="horizontal"> <FrameLayout android:id="@+id/fl_goods_detail" android:layout_width="match_parent" android:layout_height="48dp" android:layout_gravity="center" android:layout_marginTop="10dp" android:background="@color/white"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|left" android:layout_marginLeft="10dp" android:gravity="center" android:text="查看宝贝详情" android:textColor="#444444" android:textSize="16sp" /> android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <ImageView android:id="@+id/iv_imgtext_status" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|right" android:layout_marginRight="10dp" android:src="@drawable/ic_detail_img_open" /> android:id="@+id/iv_back" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center_vertical|left" android:layout_marginLeft="10dp" android:src="@drawable/icon_goods_detail_back" /> </FrameLayout> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="wrap_content" android:visibility="visible" /> <View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="3" /> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical"> <include layout="@layout/item_recyclerview_bottom" /> </FrameLayout> <LinearLayout android:id="@+id/ll_guess_like" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="8dp" android:background="@color/register_gray" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="46dp" android:background="#FFFFFF" android:gravity="center" android:text="猜你喜欢" android:textColor="#ff444444" android:textSize="15sp" /> <com.wpc.library.widget.MyGridView android:id="@+id/gv_guess_like" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginTop="4dp" android:layout_marginRight="4dp" android:background="@color/register_gray" android:columnWidth="3dp" android:horizontalSpacing="4dp" android:numColumns="2" android:verticalSpacing="4dp"></com.wpc.library.widget.MyGridView> </LinearLayout> </LinearLayout> </ScrollView> <!--状态栏1--> <LinearLayout android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center_vertical" android:orientation="horizontal"> <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <ImageView android:id="@+id/iv_back" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center_vertical|left" android:layout_marginLeft="10dp" android:src="@drawable/ic_back2" /> </FrameLayout> <View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="3" /> <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <ImageView android:id="@+id/iv_share" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center_vertical|right" android:layout_marginRight="10dp" android:src="@drawable/ic_des_share" /> </FrameLayout> </LinearLayout> <!--状态栏2--> <LinearLayout android:id="@+id/ll_top_title" android:layout_width="match_parent" android:layout_height="48dp" android:background="@color/white" android:gravity="center_vertical" android:orientation="horizontal" android:visibility="gone"> <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <ImageView android:id="@+id/iv_top_bar_left1" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center_vertical|left" android:layout_marginLeft="10dp" android:src="@drawable/ic_back3" /> </FrameLayout> <FrameLayout android:id="@+id/fl_top_title1" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <TextView android:id="@+id/tv_top_title1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:padding="8dp" android:text="宝贝" android:textColor="@color/main_text_color" android:textSize="17sp" /> <View android:id="@+id/v_1" android:layout_width="30dp" android:layout_height="3dp" android:layout_gravity="bottom|center_horizontal" android:background="@color/main_text_color" /> </FrameLayout> <FrameLayout android:id="@+id/fl_top_title2" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <TextView android:id="@+id/tv_top_title2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:paddingTop="8dp" android:paddingBottom="8dp" android:text="详情" android:textColor="@color/black2" android:textSize="17sp" /> <View android:id="@+id/v_2" android:layout_width="30dp" android:layout_height="3dp" android:layout_gravity="bottom|center_horizontal" android:background="@color/main_text_color" android:visibility="gone" /> </FrameLayout> <FrameLayout android:id="@+id/fl_top_title3" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1" <!--状态栏2--> <LinearLayout android:id="@+id/ll_top_title" android:layout_width="match_parent" android:layout_height="48dp" android:background="@color/white" android:gravity="center_vertical" android:orientation="horizontal" android:visibility="gone"> <TextView android:id="@+id/tv_top_title3" android:layout_width="wrap_content" android:layout_height="wrap_content" <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <ImageView android:id="@+id/iv_top_bar_left1" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center_vertical|left" android:layout_marginLeft="10dp" android:src="@drawable/ic_back3" /> </FrameLayout> <FrameLayout android:id="@+id/fl_top_title1" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <TextView android:id="@+id/tv_top_title1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:padding="8dp" android:text="宝贝" android:textColor="@color/main_text_color" android:textSize="17sp" /> <View android:id="@+id/v_1" android:layout_width="30dp" android:layout_height="3dp" android:layout_gravity="bottom|center_horizontal" android:background="@color/main_text_color" /> </FrameLayout> <FrameLayout android:id="@+id/fl_top_title2" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <TextView android:id="@+id/tv_top_title2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:paddingTop="8dp" android:paddingBottom="8dp" android:text="详情" android:textColor="@color/black2" android:textSize="17sp" /> <View android:id="@+id/v_2" android:layout_width="30dp" android:layout_height="3dp" android:layout_gravity="bottom|center_horizontal" android:background="@color/main_text_color" android:visibility="gone" /> </FrameLayout> <FrameLayout android:id="@+id/fl_top_title3" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center" android:ellipsize="end" android:gravity="center" android:text="喜欢" android:textColor="@color/black2" android:textSize="17sp" /> android:layout_weight="1" android:visibility="gone"> <View android:id="@+id/v_3" android:layout_width="30dp" android:layout_height="3dp" android:layout_gravity="bottom|center_horizontal" android:background="@color/main_text_color" android:visibility="gone" /> </FrameLayout> <TextView android:id="@+id/tv_top_title3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:ellipsize="end" android:gravity="center" android:text="喜欢" android:textColor="@color/black2" android:textSize="17sp" /> <FrameLayout android:id="@+id/fl_top_title4" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1"> <View android:id="@+id/v_3" android:layout_width="30dp" android:layout_height="3dp" android:layout_gravity="bottom|center_horizontal" android:background="@color/main_text_color" android:visibility="gone" /> </FrameLayout> <TextView android:id="@+id/tv_top_title4" android:layout_width="wrap_content" android:layout_height="wrap_content" <FrameLayout android:id="@+id/fl_top_title4" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center" android:ellipsize="end" android:gravity="center" android:text="推荐" android:textColor="@color/black2" android:textSize="17sp" /> android:layout_weight="1"> <View android:id="@+id/v_4" android:layout_width="30dp" android:layout_height="3dp" android:layout_gravity="bottom|center_horizontal" android:background="@color/main_text_color" android:visibility="gone" /> </FrameLayout> <TextView android:id="@+id/tv_top_title4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:ellipsize="end" android:gravity="center" android:text="推荐" android:textColor="@color/black2" android:textSize="17sp" /> <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <View android:id="@+id/v_4" android:layout_width="30dp" android:layout_height="3dp" android:layout_gravity="bottom|center_horizontal" android:background="@color/main_text_color" android:visibility="gone" /> </FrameLayout> <ImageView android:id="@+id/iv_top_bar_right" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center_vertical|right" android:layout_marginRight="10dp" android:src="@drawable/ic_des_top_right" /> </FrameLayout> </LinearLayout> <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> </FrameLayout> <View android:id="@+id/v_bottom_line" android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:layout_marginBottom="50dp" android:background="@color/register_gray" /> <FrameLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_gravity="bottom" android:background="@color/white"> <LinearLayout android:id="@+id/ll_bottom" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:id="@+id/iv_top_bar_right" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center_vertical|right" android:layout_marginRight="10dp" android:src="@drawable/ic_des_top_right" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="left"> android:layout_width="match_parent" android:layout_height="30dp" android:layout_marginTop="57dp" android:orientation="horizontal"> <LinearLayout android:id="@+id/ll_copy_link" android:id="@+id/ll_notification" android:layout_width="wrap_content" android:layout_height="match_parent" android:background="@drawable/bg_ripple" android:gravity="center" android:orientation="vertical" android:paddingLeft="10dp" android:layout_marginLeft="15dp" android:background="@drawable/shape_detail_notification" android:orientation="horizontal" android:paddingRight="10dp" android:visibility="gone"> <ImageView android:layout_width="wrap_content" android:layout_height="19dp" android:layout_gravity="center" android:gravity="center" android:src="@drawable/icon_copy_link" /> android:id="@+id/iv_notif_portrait" android:layout_width="25dp" android:layout_height="25dp" android:layout_gravity="center_vertical" android:layout_marginLeft="3dp" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/tv_copy_link" <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:text="复制链接" android:textColor="#333333" android:textSize="9sp" /> android:layout_gravity="center_vertical" android:layout_marginLeft="10dp" android:orientation="horizontal"> <TextView android:id="@+id/tv_notif_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/white" android:textSize="11sp" /> <TextView android:id="@+id/tv_notif_des" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:ellipsize="end" android:maxLines="1" android:textColor="@color/white" android:textSize="11sp" /> </LinearLayout> </LinearLayout> <View android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1" /> </LinearLayout> </FrameLayout> <View android:id="@+id/v_bottom_line" android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:layout_marginBottom="50dp" android:background="@color/register_gray" /> <FrameLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_gravity="bottom" android:background="@color/white"> <LinearLayout android:id="@+id/ll_bottom" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:orientation="horizontal"> <LinearLayout android:id="@+id/ll_add_collect" android:layout_width="wrap_content" android:layout_width="0dp" android:layout_height="match_parent" android:layout_marginLeft="25dp" android:gravity="center" android:orientation="vertical" android:paddingLeft="10dp" android:paddingRight="10dp" android:visibility="visible"> android:layout_weight="1" android:gravity="left"> <ImageView android:id="@+id/iv_like_state" <LinearLayout android:id="@+id/ll_copy_link" android:layout_width="wrap_content" android:layout_height="19dp" android:layout_gravity="center" android:layout_height="match_parent" android:background="@drawable/bg_ripple" android:gravity="center" android:src="@drawable/icon_un_collected" /> android:orientation="vertical" android:paddingLeft="10dp" android:paddingRight="10dp" android:visibility="gone"> <TextView android:id="@+id/tv_like" <ImageView android:layout_width="wrap_content" android:layout_height="19dp" android:layout_gravity="center" android:gravity="center" android:src="@drawable/icon_copy_link" /> <TextView android:id="@+id/tv_copy_link" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:text="复制链接" android:textColor="#333333" android:textSize="9sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_add_collect" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:text="收藏" android:textColor="#333333" android:textSize="9sp" /> android:layout_height="match_parent" android:layout_marginLeft="25dp" android:gravity="center" android:orientation="vertical" android:paddingLeft="10dp" android:paddingRight="10dp" android:visibility="visible"> <ImageView android:id="@+id/iv_like_state" android:layout_width="wrap_content" android:layout_height="19dp" android:layout_gravity="center" android:gravity="center" android:src="@drawable/icon_un_collected" /> <TextView android:id="@+id/tv_like" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:text="收藏" android:textColor="#333333" android:textSize="9sp" /> </LinearLayout> </LinearLayout> <View android:id="@+id/view_share_buy_divider" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:visibility="gone"></View> <LinearLayout android:id="@+id/ll_fanli" android:layout_width="130dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:background="@drawable/shape_go_fanli" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="下单返利" android:textColor="@color/white" android:textSize="15sp" /> <TextView android:id="@+id/tv_fanli_money_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="12" android:textColor="@color/white" android:textSize="12sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_buy" android:layout_width="130dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:background="@drawable/shape_go_buy" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="下单立减" android:textColor="@color/white" android:textSize="15sp" /> <TextView android:id="@+id/tv_buy" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="12.00" android:textColor="@color/white" android:textSize="12sp" /> </LinearLayout> <View android:layout_width="5dp" android:layout_height="wrap_content"></View> </LinearLayout> <View android:id="@+id/view_share_buy_divider" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:visibility="gone"></View> <LinearLayout android:id="@+id/ll_fanli_gain" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:background="@drawable/shape_go_fanli" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="分享奖" android:textColor="@color/white" android:textSize="15sp" /> <TextView android:id="@+id/tv_fanli_money_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="12" android:textColor="@color/white" android:textSize="12sp" /> </LinearLayout> </FrameLayout> <LinearLayout android:id="@+id/fl_buy" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:background="@drawable/shape_go_buy" android:orientation="vertical"> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="下单返" android:textColor="@color/white" android:textSize="15sp" /> <FrameLayout android:id="@+id/fl_face" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" android:visibility="gone"> <TextView android:id="@+id/tv_buy" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="12.00" android:textColor="@color/white" android:textSize="12sp" /> <include layout="@layout/item_no_net" /> </LinearLayout> <include layout="@layout/item_error_net" /> <View android:layout_width="5dp" android:layout_height="wrap_content"></View> </LinearLayout> <include layout="@layout/item_no_data" /> <TextView android:id="@+id/tv_big_btn" <LinearLayout android:id="@+id/ll_goods_nothing" android:layout_width="match_parent" android:layout_height="40dp" android:layout_height="match_parent" android:layout_gravity="center" android:layout_marginLeft="38dp" android:layout_marginRight="38dp" android:background="@drawable/shape_go_search" android:gravity="center" android:textColor="@color/white" android:textSize="18sp" android:textStyle="bold" android:orientation="vertical" android:visibility="gone"> </TextView> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_goods_nothing" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="该商品已经下架了~" android:textColor="@color/text_black_1" android:textSize="15sp" /> </LinearLayout> <FrameLayout android:id="@+id/fl_back_face" android:layout_width="60dp" android:layout_height="48dp"> <ImageView android:id="@+id/iv_back_face" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center|left" android:layout_marginLeft="10dp" android:src="@drawable/icon_goods_detail_back" /> </FrameLayout> <com.wang.avi.AVLoadingIndicatorView android:id="@+id/avi" style="@style/AVLoadingIndicatorView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:visibility="gone" app:indicatorColor="@color/theme" app:indicatorName="BallPulseIndicator" /> </FrameLayout> </LinearLayout> </FrameLayout> app/src/main/res/layout/item_goods_detail_hongbao.xml
@@ -34,6 +34,15 @@ android:textColor="#ffffffff" android:textSize="12sp" /> <TextView android:id="@+id/tv_sub_money_desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="" android:textColor="#ffffffff" android:textSize="9sp" /> <View android:layout_width="0dp" android:layout_height="1px" @@ -44,6 +53,8 @@ android:id="@+id/tv_final_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableRight="@drawable/icon_goods_detail_hongbao_input" android:drawablePadding="4dp" android:text="¥28.9" android:textColor="#ffffffff" android:textSize="12sp" /> @@ -54,11 +65,10 @@ <TextView android:id="@+id/tv_more" android:layout_width="wrap_content" android:layout_width="56dp" android:layout_height="wrap_content" android:layout_gravity="bottom|center_horizontal" android:layout_marginBottom="3dp" android:text="更多"> android:layout_marginBottom="3dp"> </TextView> @@ -275,6 +285,7 @@ </LinearLayout> <LinearLayout android:id="@+id/ll_level_info" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="left|top" app/src/main/res/layout/item_goods_detail_rights.xml
New file @@ -0,0 +1,29 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ll_content" android:layout_width="match_parent" android:layout_height="20dp" android:gravity="center_vertical" android:orientation="horizontal" android:paddingLeft="7.5dp"> <TextView android:id="@+id/tv_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawablePadding="3.5dp" android:text="¥50" android:textColor="#ffffac00" android:textSize="8sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="4.5dp" android:drawablePadding="3.5dp" android:text="无门槛领取" android:textColor="#ffffb218" android:textSize="9sp" /> </LinearLayout>