Commit d32741b7 authored by zhang_z's avatar zhang_z

添加备注;

修改terId;
展示Ms的条件信息;
parent 0d777680
......@@ -94,7 +94,6 @@ public class App extends Application {
.build();
}
/**
* 异常处理初始化
*/
......
......@@ -13,7 +13,7 @@ public class Pay {
public Request() {
setDeviceType("01");
setMch_id("11");
setTer_id("00000011");
setTer_id("00000098");
setOrderDateTime(TimeUtils.getNowString(new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault())));
setCurrencyType("156");
setOrderName("测试");
......
......@@ -4,6 +4,7 @@ import java.io.Serializable;
/**
* BaseBean
* 用于快速区分是否是本项目的类
*/
public interface BaseBean extends Serializable {
}
......@@ -32,6 +32,13 @@ import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
/**
* BaseDialog,供新创建的Dialog继承
*
* @param <P> 其依附的Activity的Presenter的类
* @param <B> Fragment对应的ViewDataBinding
* @author Zhangzhen
*/
public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBinding> extends AppCompatDialogFragment {
private DialogBaseBinding mBaseBinding;
......@@ -52,31 +59,54 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
mContext = getActivity();
}
/**
* 当取消键被点击
*/
public void onCancelClick(View view) {
KeyboardUtils.hideSoftInput(mViewBinding.getRoot());
this.dismiss();
}
/**
* 当确定键被点击
*/
public void onConfirmClick(View view) {
KeyboardUtils.hideSoftInput(mViewBinding.getRoot());
}
/**
* 是否显示标题
*
* @return 是否显示标题
*/
protected boolean isShowTitle() {
return true;
}
/**
* 是否为简略模式
*
* @return 是否为简略模式
*/
protected boolean isEasy() {
return false;
}
/**
* 设置点击键是否可用
*
* @param isEnable 是否可用
*/
protected void seConfirmEnable(boolean isEnable) {
mBaseBinding.btnConfirm.setEnabled(isEnable);
}
/**
* 获取标题
*
* @return 标题
*/
public int getTitle() {
return R.string.all_dialog;
}
......@@ -96,6 +126,13 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
}
/**
* 获取带标题和确定按钮的Dialog
*
* @param inflater inflater
* @param container container
* @return dialog
*/
private View getFragmentDialog(@NonNull LayoutInflater inflater, ViewGroup container) {
mBaseBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_base, container, false);
......@@ -115,13 +152,24 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
return mBaseBinding.getRoot();
}
/**
* 获取一个简单的Dialog
*
* @param inflater inflater
* @param container container
* @return dialog
*/
private View getEasyFragmentDialog(@NonNull LayoutInflater inflater, ViewGroup container) {
mViewBinding = DataBindingUtil.inflate(inflater, getLayoutId(), container, false);
this.initView();
return mViewBinding.getRoot();
}
/**
* 获取Activity
*
* @return activity
*/
protected BaseActivity getBaseActivity() {
return (BaseActivity) getActivity();
}
......@@ -139,6 +187,9 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
}
/**
* 初始化
*/
public abstract void initView();
@Override
......@@ -152,7 +203,11 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
}
}
/**
* 显示
*
* @param activity context
*/
public void show(BaseActivity activity) {
if (!isShowing) {
super.show(activity.getSupportFragmentManager(), this.getTag());
......@@ -160,6 +215,12 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
}
}
/**
* 显示,并在一定时间之后自动关闭
*
* @param activity context
* @param recLen 自动关闭的时间
*/
public void show(BaseActivity activity, int recLen) {
if (!isShowing) {
super.show(activity.getSupportFragmentManager(), this.getTag());
......@@ -202,6 +263,9 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
}
/**
* 关闭
*/
public void dismiss() {
if (isShowing) {
if (null != mDisp && (!mDisp.isDisposed())) {
......@@ -211,18 +275,38 @@ public abstract class BaseDialog<P extends BasePresenter, B extends ViewDataBind
}
}
/**
* 设置标题
*
* @param title 标题
*/
protected void setTitle(String title) {
mBaseBinding.tvTitle.setText(title);
}
/**
* 设置标题
*
* @param res 标题
*/
protected void setTitle(int res) {
mBaseBinding.tvTitle.setText(res);
}
/**
* 设置取消键的点击事件
*
* @param onCancelClick 取消键的点击事件
*/
protected void setOnCancelClick(View.OnClickListener onCancelClick) {
mBaseBinding.btnCancel.setOnClickListener(onCancelClick);
}
/**
* 设置确定键点击事件
*
* @param onConfirmClick 确定键的点击事件
*/
protected void setOnConfirmClick(View.OnClickListener onConfirmClick) {
mBaseBinding.btnConfirm.setOnClickListener(onConfirmClick);
}
......
......@@ -10,12 +10,9 @@ import android.support.v7.app.AppCompatDelegate;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.PopupWindow;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.KeyboardUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.databinding.FragmentBaseBinding;
import me.yokeyword.fragmentation.SupportFragment;
......@@ -27,12 +24,10 @@ import me.yokeyword.fragmentation.SupportFragment;
* @author Zhangzhen
*/
public abstract class BaseFragment<P extends BasePresenter, B extends ViewDataBinding> extends SupportFragment {
public Context mContext;
public P mPresenter;
public B mViewBinding;
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
......@@ -44,27 +39,8 @@ public abstract class BaseFragment<P extends BasePresenter, B extends ViewDataBi
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mContext = ActivityUtils.getTopActivity();
mPresenter = (P) ((BaseActivity) getActivity()).mPresenter;
if (this instanceof titleBar || this instanceof searchBar) {
return getTitleFragmentView(inflater, container);
} else {
return getFragmentView(inflater, container);
}
}
protected interface titleBar {
int getTitleText();
}
protected interface searchBar {
int getSearchMode();
String getHintText();
void onSearchClick();
}
@Override
public void onResume() {
......@@ -77,27 +53,8 @@ public abstract class BaseFragment<P extends BasePresenter, B extends ViewDataBi
return mViewBinding.getRoot();
}
private View getTitleFragmentView(LayoutInflater inflater, ViewGroup container) {
FragmentBaseBinding mBaseBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_base, container, false);
mBaseBinding.vsFragment.getViewStub().setLayoutResource(getLayoutId());
mBaseBinding.vsFragment.getViewStub().setOnInflateListener((viewStub, view) -> mViewBinding = DataBindingUtil.bind(view));
mBaseBinding.vsFragment.getViewStub().inflate();
mBaseBinding.btnBack.setOnClickListener(view -> onBackPressedSupport());
this.initView();
return mBaseBinding.getRoot();
}
public abstract void initView();
public void showMainPopup(PopupWindow popupWindow, View view) {
popupWindow.getContentView().measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec
.UNSPECIFIED);
int x = (int) ((popupWindow.getContentView().getMeasuredWidth() - view.getMeasuredWidth()) * 0.5);
popupWindow.showAsDropDown(view, -x, 0);
}
@Override
public void onDetach() {
super.onDetach();
......
package com.xingdata.zzdpos.base;
/**
* BaseModel,需要同步的Model需要实现的接口
*/
public interface BaseModel {
Long getSyncId();
......
......@@ -11,6 +11,13 @@ import com.xingdata.zzdpos.R;
import java.util.List;
/**
* BaseSelectedAdapter,单选的adapter
*
* @param <T> 要展示数据的数据类型
* @param <B> Item对应的ViewDataBinding
* @author Zhangzhen
*/
public abstract class BaseSelectedAdapter<T, B extends ViewDataBinding> extends BaseQuickAdapter<T, BaseViewHolder> {
private int mSelectedPosition = 0;
......
......@@ -14,15 +14,20 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
/**
* BaseSheetDialog,抽屉形的Dialog
*
* @param <P> 其依附的Activity的Presenter的类
* @param <B> Fragment对应的ViewDataBinding
* @author Zhangzhen
*/
public abstract class BaseSheetDialog<P extends BasePresenter, B extends ViewDataBinding> extends BaseDialog<P, B> {
public BottomSheetBehavior mBehavior;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
mContext = getActivity();
mPresenter = (P) getBaseActivity().mPresenter;
getBaseActivity().mDialogs.add(0, this);
MyBottomSheetDialog dialog = new MyBottomSheetDialog(mContext);
......@@ -46,8 +51,6 @@ public abstract class BaseSheetDialog<P extends BasePresenter, B extends ViewDat
}
private class MyBottomSheetDialog extends BottomSheetDialog {
private MyBottomSheetDialog(@NonNull Context context) {
super(context);
}
......
package com.xingdata.zzdpos.base;
/**
* BaseSku,各类商品需要实现的接口
*/
public interface BaseSku {
boolean isSelected();
......
......@@ -5,7 +5,6 @@ import android.view.View;
import com.xingdata.zzdpos.R;
/**
* BaseViewHolder,集成了ViewDataBinding
*/
......
......@@ -128,7 +128,6 @@ public class EditorFragment extends BaseFragment<MsPresenter, FragmentMsEditorBi
mMs.setMsTouchTag2((byte) C.MS_GROUP.ALL);
return this;
}
/**
......
package com.xingdata.zzdpos.ui.store.adapter;
import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.TimeUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemStoreMsBinding;
import com.xingdata.zzdpos.db.DBFactory;
import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.ArrayList;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Locale;
public class MsAdapter extends BaseAdapter<Ms, ItemStoreMsBinding> {
public MsAdapter() {
super(R.layout.item_store_ms, new ArrayList<>());
public MsAdapter(List<Ms> mss) {
super(R.layout.item_store_ms, mss);
}
@Override
protected void convert(ItemStoreMsBinding mViewBinding, Ms item) {
switch (item.getMsTools()) {
case C.MS_TYPE.DIS:
mViewBinding.tvType.setText(R.string.ms_type_dis);
mViewBinding.tvType.setBackgroundResource(R.drawable.shape_red_r1);
break;
case C.MS_TYPE.PROMOTION:
mViewBinding.tvType.setText(R.string.ms_type_promotion);
mViewBinding.tvType.setBackgroundResource(R.drawable.shape_orange_r1);
break;
case C.MS_TYPE.SECOND:
mViewBinding.tvType.setText(R.string.ms_type_dis);
mViewBinding.tvType.setBackgroundResource(R.drawable.shape_red_r1);
break;
case C.MS_TYPE.MONEY_OFF:
mViewBinding.tvType.setText(R.string.ms_type_money_off);
mViewBinding.tvType.setBackgroundResource(R.drawable.shape_green_r1);
break;
case C.MS_TYPE.GIFT:
mViewBinding.tvType.setText(R.string.ms_type_gift);
mViewBinding.tvType.setBackgroundResource(R.drawable.shape_green_r1);
break;
}
String[] str = getMsDescription(item);
mViewBinding.tvDescription.setText(str[0]);
mViewBinding.tvInfo.setText(str[1]);
}
/**
* 获取营销计划的文字描述
*
* @param ms 营销计划
* @return 文字描述
*/
private String[] getMsDescription(Ms ms) {
String strGroup = "", strType = "";
switch (ms.getMsTouchTag2()) {
case C.MS_GROUP.ALL:
strGroup = mContext.getString(R.string.ms_group_all_info);
break;
case C.MS_GROUP.BRAND:
strGroup = mContext.getString(R.string.ms_group_all_info);
break;
case C.MS_GROUP.CATE:
strGroup = mContext.getString(R.string.ms_group_cate_info, ms.getCateName());
break;
case C.MS_GROUP.SKU:
String spuName = DBFactory.Store.querySpuNameBySkuId(ms.getSkuId());
strGroup = mContext.getString(R.string.ms_group_sku_info, !StringUtils.isEmpty(spuName) ? spuName : ms.getSkuId());
break;
}
switch (ms.getMsTools()) {
case C.MS_TYPE.DIS:
strType = mContext.getString(R.string.ms_type_dis_info, String.valueOf(Double.valueOf(ms.getPriceDiscount()) / 10));
break;
case C.MS_TYPE.PROMOTION:
strType = mContext.getString(R.string.ms_type_promotion_info);
break;
case C.MS_TYPE.SECOND:
strType = mContext.getString(R.string.ms_type_second_info, String.valueOf(Double.valueOf(ms.getPriceDiscount()) / 10));
break;
case C.MS_TYPE.MONEY_OFF:
strType = mContext.getString(R.string.ms_type_money_off_info, ConvertUtil.fenToYuan(ms.getPayAmt()), ConvertUtil.fenToYuan(ms.getGiftOffAmt()));
break;
case C.MS_TYPE.GIFT:
strType = mContext.getString(R.string.ms_type_gift_info, ConvertUtil.fenToYuan(ms.getPayAmt()), ConvertUtil.fenToYuan(ms.getGiftSkuPrice()), ms.getGiftSkuName());
break;
}
SimpleDateFormat df1 = new SimpleDateFormat("yyyyMMdd", Locale.getDefault());
SimpleDateFormat df2 = new SimpleDateFormat("yyyy年M月d日", Locale.getDefault());
SimpleDateFormat df3 = new SimpleDateFormat("HHmmss", Locale.getDefault());
SimpleDateFormat df4 = new SimpleDateFormat("HH:mm", Locale.getDefault());
String db = TimeUtils.date2String(TimeUtils.string2Date(String.valueOf(ms.getMsDateBegin()), df1), df2);
String de = TimeUtils.date2String(TimeUtils.string2Date(String.valueOf(ms.getMsDateEnd()), df1), df2);
StringBuilder strTimeBegin = new StringBuilder(ms.getMsTimeBegin().toString());
StringBuilder strTimeEnd = new StringBuilder(ms.getMsTimeEnd().toString());
for (int i = strTimeBegin.length(); i < 6; i++) {
strTimeBegin.insert(0, "0");
}
for (int i = strTimeEnd.length(); i < 6; i++) {
strTimeEnd.insert(0, "0");
}
String tb = TimeUtils.date2String(TimeUtils.string2Date(strTimeBegin.toString(), df3), df4);
String te = TimeUtils.date2String(TimeUtils.string2Date(strTimeEnd.toString(), df3), df4);
String weekPlan = "";
if (ms.getMsWeekPlan().contains("1")) weekPlan += "周日,";
if (ms.getMsWeekPlan().contains("2")) weekPlan += "周一,";
if (ms.getMsWeekPlan().contains("3")) weekPlan += "周二,";
if (ms.getMsWeekPlan().contains("4")) weekPlan += "周三,";
if (ms.getMsWeekPlan().contains("5")) weekPlan += "周四,";
if (ms.getMsWeekPlan().contains("6")) weekPlan += "周五,";
if (ms.getMsWeekPlan().contains("7")) weekPlan += "周六,";
if (weekPlan.length() > 0) weekPlan = weekPlan.substring(0, weekPlan.lastIndexOf(","));
if (weekPlan.length() >= 20) weekPlan = "每天";
return new String[]{strGroup + strType, db + "~" + de + "\n" + weekPlan + " " + tb + "~" + te};
}
}
package com.xingdata.zzdpos.ui.store.dialog;
import com.blankj.utilcode.util.StringUtils;
import com.xingdata.zzdpos.C;
import android.support.v7.widget.LinearLayoutManager;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseSheetDialog;
import com.xingdata.zzdpos.databinding.DialogStoreMsBinding;
import com.xingdata.zzdpos.db.DBFactory;
import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.ui.store.StorePresenter;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.ui.store.adapter.MsAdapter;
import java.util.List;
......@@ -24,32 +23,10 @@ public class MsDialog extends BaseSheetDialog<StorePresenter, DialogStoreMsBindi
@Override
public void initView() {
mViewBinding.setDisInfo("");
mViewBinding.setPromotionInfo("");
mViewBinding.setMoneyOffInfo("");
mViewBinding.setGiftInfo("");
mViewBinding.tvClose.setOnClickListener(view -> this.dismiss());
for (int i = 0; i < mMss.size(); i++) {
switch (mMss.get(i).getMsTools()) {
case C.MS_TYPE.DIS:
mViewBinding.setDisInfo(mViewBinding.getDisInfo() + getMsDescription(mMss.get(i)) + "\n");
break;
case C.MS_TYPE.PROMOTION:
mViewBinding.setPromotionInfo(mViewBinding.getPromotionInfo() + getMsDescription(mMss.get(i)) + "\n");
break;
case C.MS_TYPE.SECOND:
mViewBinding.setDisInfo(mViewBinding.getDisInfo() + getMsDescription(mMss.get(i)) + "\n");
break;
case C.MS_TYPE.MONEY_OFF:
mViewBinding.setMoneyOffInfo(mViewBinding.getMoneyOffInfo() + getMsDescription(mMss.get(i)) + "\n");
break;
case C.MS_TYPE.GIFT:
mViewBinding.setGiftInfo(mViewBinding.getGiftInfo() + getMsDescription(mMss.get(i)) + "\n");
break;
}
}
MsAdapter mMsAdapter = new MsAdapter(mMss);
mViewBinding.rlDis.setAdapter(mMsAdapter);
mViewBinding.rlDis.setLayoutManager(new LinearLayoutManager(mContext));
}
/**
......@@ -61,49 +38,4 @@ public class MsDialog extends BaseSheetDialog<StorePresenter, DialogStoreMsBindi
this.mMss = mss;
return this;
}
/**
* 获取营销计划的文字描述
*
* @param ms 营销计划
* @return 文字描述
*/
private String getMsDescription(Ms ms) {
String strGroup = "", strType = "";
switch (ms.getMsTouchTag2()) {
case C.MS_GROUP.ALL:
strGroup = getString(R.string.ms_group_all_info);
break;
case C.MS_GROUP.BRAND:
strGroup = getString(R.string.ms_group_all_info);
break;
case C.MS_GROUP.CATE:
strGroup = getString(R.string.ms_group_cate_info, ms.getCateName());
break;
case C.MS_GROUP.SKU:
String spuName = DBFactory.Store.querySpuNameBySkuId(ms.getSkuId());
strGroup = getString(R.string.ms_group_sku_info, !StringUtils.isEmpty(spuName) ? spuName : ms.getSkuId());
break;
}
switch (ms.getMsTools()) {
case C.MS_TYPE.DIS:
strType = getString(R.string.ms_type_dis_info, String.valueOf(Double.valueOf(ms.getPriceDiscount()) / 10));
break;
case C.MS_TYPE.PROMOTION:
strType = getString(R.string.ms_type_promotion_info);
break;
case C.MS_TYPE.SECOND:
strType = getString(R.string.ms_type_second_info, String.valueOf(Double.valueOf(ms.getPriceDiscount()) / 10));
break;
case C.MS_TYPE.MONEY_OFF:
strType = getString(R.string.ms_type_money_off_info, ConvertUtil.fenToYuan(ms.getPayAmt()), ConvertUtil.fenToYuan(ms.getGiftOffAmt()));
break;
case C.MS_TYPE.GIFT:
strType = getString(R.string.ms_type_gift_info, ConvertUtil.fenToYuan(ms.getPayAmt()), ConvertUtil.fenToYuan(ms.getGiftSkuPrice()), ms.getGiftSkuName());
break;
}
return strGroup + strType;
}
}
......@@ -2,29 +2,6 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="disInfo"
type="String" />
<variable
name="promotionInfo"
type="String" />
<variable
name="moneyOffInfo"
type="String" />
<variable
name="giftInfo"
type="String" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -64,128 +41,10 @@
android:background="@color/gray_huanggai"
app:layout_constraintTop_toBottomOf="@id/fl_title" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top|start"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin"
android:paddingTop="@dimen/all_margin"
android:visibility="@{disInfo.length()>0?View.VISIBLE:View.GONE}">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_red_r1"
android:paddingBottom="@dimen/all_shape_radius"
android:paddingEnd="@dimen/all_spacing"
android:paddingStart="@dimen/all_spacing"
android:paddingTop="@dimen/all_shape_radius"
android:text="@string/ms_type_dis"
android:textColor="@color/white_caocao" />
<TextView
android:id="@+id/tv_dis"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:lineSpacingExtra="@dimen/all_spacing"
android:text="@{disInfo}"
android:textColor="@color/black_baozheng" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top|start"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin"
android:paddingTop="@dimen/all_margin"
android:visibility="@{promotionInfo.length()>0?View.VISIBLE:View.GONE}">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_orange_r1"
android:paddingBottom="@dimen/all_shape_radius"
android:paddingEnd="@dimen/all_spacing"
android:paddingStart="@dimen/all_spacing"
android:paddingTop="@dimen/all_shape_radius"
android:text="@string/ms_type_promotion"
android:textColor="@color/white_caocao" />
<TextView
android:id="@+id/tv_promotion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:lineSpacingExtra="@dimen/all_spacing"
android:text="@{promotionInfo}"
android:textColor="@color/black_baozheng" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top|start"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin"
android:paddingTop="@dimen/all_margin"
android:visibility="@{moneyOffInfo.length()>0?View.VISIBLE:View.GONE}">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_green_r1"
android:paddingBottom="@dimen/all_shape_radius"
android:paddingEnd="@dimen/all_spacing"
android:paddingStart="@dimen/all_spacing"
android:paddingTop="@dimen/all_shape_radius"
android:text="@string/ms_type_money_off"
android:textColor="@color/white_caocao" />
<TextView
android:id="@+id/tv_money_off"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:lineSpacingExtra="@dimen/all_spacing"
android:text="@{moneyOffInfo}"
android:textColor="@color/black_baozheng" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top|start"
android:paddingBottom="@dimen/all_margin"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin"
android:paddingTop="@dimen/all_margin"
android:visibility="@{giftInfo.length()>0?View.VISIBLE:View.GONE}">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_blue_r1"
android:paddingBottom="@dimen/all_shape_radius"
android:paddingEnd="@dimen/all_spacing"
android:paddingStart="@dimen/all_spacing"
android:paddingTop="@dimen/all_shape_radius"
android:text="@string/ms_type_gift"
android:textColor="@color/white_caocao" />
<TextView
android:id="@+id/tv_gift"
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_dis"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:lineSpacingExtra="@dimen/all_spacing"
android:text="@{giftInfo}"
android:textColor="@color/black_baozheng" />
</LinearLayout>
android:layout_height="wrap_content" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -5,8 +5,46 @@
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:foreground="?android:attr/selectableItemBackground">
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin"
android:paddingTop="@dimen/all_margin">
<TextView
android:id="@+id/tv_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_red_r1"
android:paddingBottom="@dimen/all_shape_radius"
android:paddingEnd="@dimen/all_spacing"
android:paddingStart="@dimen/all_spacing"
android:paddingTop="@dimen/all_shape_radius"
android:text="@string/ms_type_dis"
android:textColor="@color/white_caocao" />
<TextView
android:id="@+id/tv_description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:gravity="center_vertical"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_body_size"
app:layout_constraintLeft_toRightOf="@id/tv_type"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_type" />
<TextView
android:id="@+id/tv_info"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_spacing"
android:layout_marginTop="@dimen/all_spacing"
android:textColor="@color/black_likui"
android:textSize="@dimen/all_caption_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="@id/tv_description"
app:layout_constraintRight_toRightOf="@id/tv_description"
app:layout_constraintTop_toBottomOf="@id/tv_description" />
</android.support.constraint.ConstraintLayout>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment