1. 程式人生 > >動畫加商品詳情加商品購物車

動畫加商品詳情加商品購物車

初始動畫布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent"
    android:gravity="center_horizontal">


    <ImageView
android:id="@+id/img_animation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher"/>
</LinearLayout>

對應的動畫程式碼

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import
android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ImageView; import android.widget.Toast; public class SplashActivity extends AppCompatActivity { private
ImageView img_animation; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); img_animation= (ImageView) findViewById(R.id.img_animation); ObjectAnimator moveIn = ObjectAnimator.ofFloat(img_animation, "translationY", 0f, 500f); ObjectAnimator rotate = ObjectAnimator.ofFloat(img_animation, "rotation", 0f, 360f); ObjectAnimator fadeInOut = ObjectAnimator.ofFloat(img_animation, "alpha", 1f, 0f); ObjectAnimator scale=ObjectAnimator.ofFloat(img_animation,"scaleY",2f,1f); AnimatorSet animSet = new AnimatorSet(); animSet.play(rotate).with(fadeInOut).with(moveIn).with(scale); animSet.setDuration(3000); animSet.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); Toast.makeText(SplashActivity.this,"動畫播放結束",Toast.LENGTH_SHORT).show(); Intent intent=new Intent(SplashActivity.this,MainActivity.class); startActivity(intent); } }); animSet.start(); } }

商品詳情的佈局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/tv_shop"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="商品詳情"
        android:textSize="20dp"
        android:gravity="center_horizontal"/>
    <ImageView
        android:layout_below="@id/tv_shop"
        android:id="@+id/img_shop"
        android:layout_marginTop="20dp"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:src="@mipmap/ic_launcher"/>
    <TextView
        android:layout_below="@id/img_shop"
        android:layout_marginTop="20dp"
        android:id="@+id/tv_shop_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text=" 純子見過手機 前後雙蛇 照亮你的美"/>
    <TextView
        android:layout_below="@id/tv_shop_title"
        android:layout_marginTop="20dp"
        android:id="@+id/tv_shop_old"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="原價:9999"/>
    <TextView
        android:layout_below="@id/tv_shop_old"
        android:layout_marginTop="20dp"
        android:id="@+id/tv_shop_new"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="優惠價:999"
        android:textColor="#F53908"/>
    <LinearLayout
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">
        <Button
            android:id="@+id/btn_shop1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="購物車"/>
        <Button
            android:id="@+id/btn_shop2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="加入購物車"/>
    </LinearLayout>
</RelativeLayout>

商品詳情程式碼

import android.content.Intent;
import android.graphics.Paint;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bwie.ningkesong1510c1220monthmoni.bean.Addbean;
import com.bwie.ningkesong1510c1220monthmoni.bean.ShopBean;
import com.bwie.ningkesong1510c1220monthmoni.presenter.Addpresenter;
import com.bwie.ningkesong1510c1220monthmoni.presenter.IAddpresenter;
import com.bwie.ningkesong1510c1220monthmoni.presenter.IShoppresenter;
import com.bwie.ningkesong1510c1220monthmoni.presenter.Shoppresenter;
import com.bwie.ningkesong1510c1220monthmoni.utils.ImageloaderUtil;
import com.bwie.ningkesong1510c1220monthmoni.view.IAddview;
import com.bwie.ningkesong1510c1220monthmoni.view.IShopview;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

public class MainActivity extends AppCompatActivity implements IShopview,IAddview{

    private ImageView img_shop;
    private TextView tv_shop_title;
    private TextView tv_shop_old;
    private TextView tv_shop_new;
    private Button btn_shop1;
    private Button btn_shop2;
    private IShoppresenter iShoppresenter;
     int uid=1;
     int pid=100;
    private IAddpresenter iAddpresenter;
    private Addbean addbean;

    private List<ShopBean.DataBean> dataBeen;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
        iShoppresenter=new Shoppresenter(MainActivity.this);
        iShoppresenter.getmData();
        iAddpresenter=new Addpresenter(MainActivity.this,uid,pid);
        iAddpresenter.getmData();
        btn_shop1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intentcar=new Intent(MainActivity.this,CarActivity.class);
                startActivity(intentcar);
            }
        });

    }
    public void init(){// 查詢控制元件的方法
        img_shop= (ImageView) findViewById(R.id.img_shop);
        tv_shop_title= (TextView) findViewById(R.id.tv_shop_title);
        tv_shop_old= (TextView) findViewById(R.id.tv_shop_old);
        tv_shop_new= (TextView) findViewById(R.id.tv_shop_new);
        btn_shop1= (Button) findViewById(R.id.btn_shop1);
        btn_shop2= (Button) findViewById(R.id.btn_shop2);
    }

    @Override
    public void getData(List<ShopBean.DataBean> dataBeen) {
        this.dataBeen=dataBeen;
        String[] split = dataBeen.get(0).getImages().split("\\|");
        ImageLoader.getInstance().displayImage(split[0],img_shop,ImageloaderUtil.getImageOptions());
        tv_shop_title.setText(dataBeen.get(0).getTitle());
        tv_shop_old.setText("原價:"+dataBeen.get(0).getPrice());
        tv_shop_old.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG|Paint.ANTI_ALIAS_FLAG);
        tv_shop_new.setText("優惠價:"+dataBeen.get(0).getBargainPrice());
        //pid=dataBeen.get(0).getPid();

    }

    @Override
    public void getData(final Addbean addbean) {
        this.addbean=addbean;
        // 新增購物車的點選事件
        btn_shop2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this,addbean.getMsg()+"",Toast.LENGTH_LONG).show();
            }
        });
    }
}

購物車的三個佈局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <ExpandableListView
        android:id="@+id/ealv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ></ExpandableListView>

    <LinearLayout
        android:layout_alignParentBottom="true"
        android:id="@+id/lin"
        android:background="#fff"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <CheckBox
            android:id="@+id/quanxuan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:textStyle="bold"
            android:layout_marginLeft="10dp"
            android:textSize="23sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="全選"
            />

        <LinearLayout
            android:padding="10dp"
            android:layout_marginLeft="10dp"
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content">

            <TextView
                android:textColor="#e53e42"
                android:id="@+id/total_price"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:text="總價 : ¥0元"
                />

            <TextView
                android:id="@+id/total_num"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:text="共0件商品"
                />

        </LinearLayout>

        <TextView
            android:id="@+id/qujiesuan"
            android:gravity="center"
            android:textSize="25sp"
            android:text="去結算"
            android:textColor="#fff"
            android:background="@drawable/qujiesuan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>

</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="match_parent">



    <CheckBox
        android:id="@+id/shop_checkbox"
        android:layout_width="50dp"
        android:layout_height="50dp" />

    <TextView
        android:layout_marginLeft="20dp"
        android:text="良品鋪子"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="23sp"
        android:textStyle="bold"
        android:id="@+id/shop_name"
        />

</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:padding="15dp"
    android:layout_height="match_parent">



    <LinearLayout
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <CheckBox
            android:id="@+id/item_checkbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <ImageView
            android:id="@+id/item_face"
            android:src="@mipmap/ic_launcher"
            android:layout_width="120dp"
            android:layout_height="120dp" />

        <LinearLayout
            android:layout_marginLeft="10dp"
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content">

            <TextView
                android:id="@+id/text_name"
                android:textSize="20sp"
                android:text="三隻松鼠"
                android:layout_width="wrap_content"
                android:layout_weight="1"
                android:layout_height="0dp"
                />

            <TextView
                android:textColor="#f00"
                android:id="@+id/item_price"
                android:textSize="23sp"
                android:text="299"
                android:layout_width="wrap_content"
                android:layout_height="0dp"
                android:layout_weight="1"
                />
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <Button
                    android:id="@+id/btn_jia"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:text="+"
                    android:textSize="20dp"/>
                <EditText
                    android:id="@+id/edit_car"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="1"/>
                <Button
                    android:id="@+id/btn_jian"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:text="-"
                    android:textSize="20dp"/>
            </LinearLayout>

        </LinearLayout>

        <ImageView
            android:id="@+id/item_delete"
            android:src="@drawable/delect"
            android:layout_marginRight="10dp"
            android:layout_width="30dp"
            android:layout_height="30dp" />
    </LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="200dp"/>
    <solid android:color="#e53e42"/>
    <size android:height="60dp" android:width="130dp"/>
</shape>

購物車程式碼

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.CheckBox;
import android.widget.ExpandableListView;
import android.widget.TextView;

import com.bwie.ningkesong1510c1220monthmoni.adapter.MyAdapter;
import com.bwie.ningkesong1510c1220monthmoni.bean.CarPriceAndCount;
import com.bwie.ningkesong1510c1220monthmoni.bean.Carbean;
import com.bwie.ningkesong1510c1220monthmoni.presenter.Carpresenter;
import com.bwie.ningkesong1510c1220monthmoni.presenter.ICarpresenter;
import com.bwie.ningkesong1510c1220monthmoni.view.ICarview;

import java.util.ArrayList;
import java.util.List;

public class CarActivity extends AppCompatActivity implements ICarview{

    private ExpandableListView ealv;
    private static CheckBox quanxuan;
    private static TextView total_price;
    private static TextView total_num;
    private TextView qujiesuan;
    private MyAdapter adapter;
    private ICarpresenter iCarpresenter;
    private static String price="";
    private List<List<Carbean.DataBean.ListBean>> list=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_car);
        init();
        iCarpresenter=new Carpresenter(this);
        iCarpresenter.getmData();

        quanxuan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                adapter.allOrNot(quanxuan.isChecked());
            }
        });
        qujiesuan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(CarActivity.this,QueRenActivity.class);
                intent.putExtra("price",price);
                startActivity(intent);
            }
        });

    }
    public void init(){
        ealv= (ExpandableListView) findViewById(R.id.ealv);
        quanxuan= (CheckBox) findViewById(R.id.quanxuan);
        total_price= (TextView) findViewById(R.id.total_price);
        total_num= (TextView) findViewById(R.id.total_num);
        qujiesuan= (TextView) findViewById(R.id.qujiesuan);
    }

    @Override
    public void getData(List<Carbean.DataBean> dataBeen) {
        for (int i = 0; i <dataBeen.size() ; i++) {
            list.add(dataBeen.get(i).getList());
        }
        adapter=new MyAdapter(CarActivity.this,dataBeen,list);
        ealv.setAdapter(adapter);
        ealv.setGroupIndicator(null);
        // 展開
        for (int i=0;i<dataBeen.size();i++){
            ealv.expandGroup(i);
        }
        adapter.notifyDataSetChanged();
    }
    public static void selectAllOrNot(boolean bool){
        quanxuan.setChecked(bool);
    }
    /**
     * 設定價格和數量
     */
    public static void setPriceAndCount(CarPriceAndCount priceandcount){
        price=priceandcount.getPrice()+"";
        total_num.setText("去結算("+priceandcount.getCount()+")");
        total_price.setText("合計:"+priceandcount.getPrice());
    }

}

二級列表的介面卡>

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

import com.bwie.ningkesong1510c1220monthmoni.CarActivity;
import com.bwie.ningkesong1510c1220monthmoni.R;
import com.bwie.ningkesong1510c1220monthmoni.bean.CarPriceAndCount;
import com.bwie.ningkesong1510c1220monthmoni.bean.Carbean;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

/**
 * Created by songsong on 2017/12/20.
 */

public class MyAdapter extends BaseExpandableListAdapter {
    private Context context;
    private List<Carbean.DataBean> data;
    private List<List<Carbean.DataBean.ListBean>> list;

    public MyAdapter(Context context, List<Carbean.DataBean> data, List<List<Carbean.DataBean.ListBean>> list) {
        this.context = context;
        this.data = data;
        this.list = list;
    }

    @Override
    public int getGroupCount() {
        return data.size();
    }

    @Override
    public int getChildrenCount(int i) {
        return list.get(i).size();
    }

    @Override
    public Object getGroup(int i) {
        return data.get(i);
    }

    @Override
    public Object getChild(int i, int i1) {
        return list.get(i).get(i1);
    }

    @Override
    public long getGroupId(int i) {
        return i;
    }

    @Override
    public long getChildId(int i, int i1) {
        return i1;
    }

    @Override
    public boolean hasStableIds() {
        return false;
    }

    @Override
    public View getGroupView(final int i, boolean b, View view, ViewGroup viewGroup) {
        final Carbean.DataBean dataBean = data.get(i);
        final ViewHolder holder;
        if(view==null){
            view=view.inflate(context,R.layout.car_group,null);
            holder=new ViewHolder();
            holder.shop_checkbox= (CheckBox) view.findViewById(R.id.shop_checkbox);
            holder.shop_name= (TextView) view.findViewById(R.id.shop_name);
            view.setTag(holder);
        }else{
            holder= (ViewHolder) view.getTag();
        }
        holder.shop_checkbox.setChecked(dataBean.isCheck());
        holder.shop_name.setText(dataBean.getSellerName());
        holder.shop_checkbox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dataBean.setCheck(holder.shop_checkbox.isChecked());
                checkfangfa(i,holder.shop_checkbox.isChecked());
                CarActivity.selectAllOrNot(isAllGgroupCbChecked());

                notifyDataSetChanged();
            }
        });
        return view;
    }

    @Override
    public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) {
        final Carbean.DataBean.ListBean listBean = list.get(i).get(i1);
        final ViewHOlder2 holder2;
        if(view==null){
            view=view.inflate(context,R.layout.car_child,null);
            holder2=new ViewHOlder2();
            holder2.item_checkbox= (CheckBox) view.findViewById(R.id.item_checkbox);
            holder2.item_face= (ImageView) view.findViewById(R.id.item_face);
            holder2.text_name= (TextView) view.findViewById(R.id.text_name);
            holder2.item_price= (TextView) view.findViewById(R.id.item_price);
            holder2.btn_jia= (Button) view.findViewById(R.id.btn_jia);
            holder2.btn_jian= (Button) view.findViewById(R.id.btn_jian);
            holder2.edit_car= (EditText) view.findViewById(R.id.edit_car);
            holder2.item_delete= (ImageView) view.findViewById(R.id.item_delete);
            view.setTag(holder2);
        }else{
            holder2= (ViewHOlder2) view.getTag();
        }
        String[] split = listBean.getImages().split("\\|");
        ImageLoader.getInstance().displayImage(split[0],holder2.item_face);
        holder2.text_name.setText(listBean.getTitle());
        holder2.item_price.setText("¥"+listBean.getPrice()+"");
        holder2.edit_car.setText(listBean.getNum()+"");
        holder2.item_checkbox.setChecked(list.get(i).get(i1).isChecked());
        CarActivity.selectAllOrNot(isAllGgroupCbChecked());
        holder2.item_checkbox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                listBean.setChecked(holder2.item_checkbox.isChecked());
                data.get(i).setCheck(isAllChildCbChecked(i));
                notifyDataSetChanged();
            }
        });
        //增加一個商品
        holder2.btn_jia.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int count=listBean.getNum();
                count++;
                listBean.setNum(count);
                setPriceAndCount();
                notifyDataSetChanged();
            }
        });
        //減少一件商品
        holder2.btn_jian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int count=listBean.getNum();
                if(count<=1){
                    count=1;
                }else{
                    count--;
                }
                listBean.setNum(count);
                setPriceAndCount();
                notifyDataSetChanged();
            }
        });
        //刪除
        holder2.item_delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                List<Carbean.DataBean.ListBean> listbeen = list.get(i);
                if(listbeen.size()>0){
                    listbeen.remove(i1);
                }
                if(listbeen.size()==0){
                    list.remove(i);
                    data.remove(i);
                }
                setPriceAndCount();
                CarActivity.selectAllOrNot(isAllGgroupCbChecked());
                notifyDataSetChanged();
            }
        });
        return view;
    }

    @Override
    public boolean isChildSelectable(int i, int i1) {
        return false;
    }
    class ViewHolder{
        CheckBox shop_checkbox;
        TextView shop_name;
    }
    class ViewHOlder2{
        CheckBox item_checkbox;
        ImageView item_face;
        TextView text_name;
        TextView item_price;
        Button btn_jia;
        Button btn_jian;
        EditText edit_car;
        ImageView item_delete;
    }
    // 根據一級列表的狀態去設定二級列表的狀態
    private void checkfangfa(int groupPosition,boolean bool){
        List<Carbean.DataBean.ListBean> listBeen = list.get(groupPosition);

        for (int i = 0; i <listBeen.size() ; i++) {
            listBeen.get(i).setChecked(bool);
        }
    }
    // 判斷二級列表的狀態
    private boolean isAllChildCbChecked(int groupPosition) {
        List<Carbean.DataBean.ListBean> listBeen = list.get(groupPosition);
        for (int i = 0; i < listBeen.size(); i++) {
            if (!listBeen.get(i).isChecked()) {
                return false;
            }
        }
        return true;
    }
    // 判斷一級列表的狀態
    public boolean isAllGgroupCbChecked(){
        if(data.size()<0){
            return false;
        }
        for (int i = 0; i <data.size() ; i++) {
            if(!data.get(i).isCheck()){
                return false;
            }
        }
        return true;
    }
    // 進行全選全不選
    public void allOrNot(boolean bool){
        for (int i = 0; i < data.size(); i++) {
            data.get(i).setCheck(bool);
            checkfangfa(i,bool);
            setPriceAndCount();
        }
        notifyDataSetChanged();
    }
    /**
     * 設定錢和數量
     */
    private void setPriceAndCount(){
        CarActivity.setPriceAndCount(compute());
    }
    // 設定錢和數量
    private CarPriceAndCount compute(){
        double price = 0;
        int count = 0;
        for (int i = 0; i < data.size(); i++) {
             List<Carbean.DataBean.ListBean> listBeans = list.get(i);
            for (int j = 0; j <listBeans.size() ; j++) {
                if(listBeans.get(j).isChecked()){
                    price+=listBeans.get(j).getPrice()*listBeans.get(j).getNum();
                    count+=listBeans.get(j).getNum();
                }
            }
        }
        return new CarPriceAndCount(price,count);
    }
}

確認訂單的佈局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <TextView
        android:layout_alignParentTop="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="確認訂單"
        android:textSize="30dp"
        android:background="#3F48CC"/>

    <LinearLayout
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/text_money"
            android:layout_width="0dp"
            android:layout_weight="2"
            android:layout_height="wrap_content"
            android:text="實付款:1234.4"
            android:textColor="#F53908"/>
        <TextView
            android:id="@+id/text_xiadan"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text=
            
           

相關推薦

動畫商品詳情商品購物車

初始動畫布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andro

商品購物車動畫效果(貝塞爾曲線)

param from mat 位置 hold pos 開始 onclick border 目錄(?)[+] 如圖: 參考: Android補間動畫,屬性動畫實現購物車添加動畫 思路: 確定動畫的起終點 在起終點之間使用二次貝塞爾曲線填充起終點之間的點的軌跡 設置屬

watch 監聽圖片載事件 飯俠三十六商品詳情

can inner 網絡 erro sep cancel center out toa <template lang="html"> <div id="productDetailBox"> <flexbox orient="vertical"

微信小程式-template使用:實現購物車商品數量減功能

前言上一篇我們實現了購物車功能,裡面有用到template模板功能來實現購物車商品數量加減和價格計算功能,可能篇幅過長介紹的並不清楚,本篇將詳細介紹一下template模板來減少冗餘程式碼。模板WXML提供模板(template),可以在模板中定義程式碼片段,然後在不同的地方

一個可以添商品、查詢商品的程序,登錄成功的話,再去操作,添、查詢商品,添商品也是寫在文件裏面

指定 true rod 成功 文件 font split digi 邏輯 #寫一個可以添加商品、查詢商品的這麽程序#1、先登錄,登錄的用戶名和密碼都是寫在文件裏面的#1、讀文件、字符串分割#2、登錄成功的話,再去操作,添加、查詢商品,添加商品也是寫在文件裏面#1、讀寫文件,

案例37-後臺商品的代碼實現加入圖片上傳

back 獲取文件 print req and 瀏覽器 完全 dom lin 1 add.jsp代碼修改 <%@ page language="java" pageEncoding="UTF-8"%> <HTML> <HEAD

shop--10.商品--商品(後端)

lena 存在 批量插入 驗證 read tst verify set list 商品添加dao層 1 /** 2 * 插入商品 3 * 4 * @param product 5 * @return 6

label縮排演算法,商品名稱標籤

實際開發中遇到這樣的問題,商品名稱前面需要加上標籤,例如特賣,保稅,等等。幾個標籤,標籤是誰都是可變的。這就意味著我們的label不能寫死。要動態適應,這樣就需要用到縮排演算法,效果如下                

仿京東首頁+商品詳情頁+購物車

IHomeApi: package com.example.yuekaomoni.mvp.view.iview; import com.example.yuekaomoni.mvp.model.bean.Home; import io.reactivex.Observa

Ecshop給商品分類一個薪欄位

1.首先要在資料庫裡面的ecs_category的資料表裡面新增一個欄位,例如:enanme 2.開啟後臺的模板檔案:admin/template/category_info.htm.

學習淘淘商城第九十七課(商品詳情頁面對加入購物車進行改造)

        我們訪問淘淘商城首頁(前提是啟動了所有的服務及工程,雖然有個別工程用不上,不過也沒關係),在搜尋框中輸入要搜尋的商品,我以前新增過"金立M2017"這款手機,我就搜尋它。          搜尋到的結果頁面如下圖所示。           我們再點選這款

商品詳情介面點選跳轉到購物車(二)購物車介面

//佈局檔案 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-aut

商品詳情頁面,點選按鈕將對應的商品加入購物車

商品詳情頁面是通過 點選首頁的商品,傳當前商品的資訊到商品詳情頁面展示, 點選 加入購物車的按鈕 將當前商品加入到購物車裡 這是首頁的商品展示 點選商品 跳轉到商品詳情頁面 商品詳情頁面的佈局 <?xml version="1.0" encoding="ut

jquery快速實現商品數量減的方法

<!-- 快速實現數量加減 --> <!DOCTYPE html> <html> <head> <meta charset="utf-8">

淘淘商城系列——商品詳情頁面對加入購物車進行改造

在上文中,我就講過,關於購物車模組,京東和淘寶並不一樣,京東允許使用者在沒有登入的情況下就新增商品進購物車,而且加到購物車裡面的商品可以一直儲存著。這其實是把購物車資訊寫入到了Cookie中,如果清空了Cookie也就清空購物車了。把購物車資訊寫入到了Cooki

使用策略模式標籤來解決商品顯示的一級分層

假設我們要在一個商品顯示物件中放入商品物件的任何一個屬性 商品顯示類的定義如下 @Data public class Pro

仿京東、天貓app的商品詳情頁的布局架構, 以及功能實現

enter layout 顯示 效果 寫上 idt theme brush 2.2.0 一、介紹 這個類是繼承自ImageView的,所以對於這個控件我們可以使用ImageView的所有屬性 二、使用準備, 在as 的 build.grade文件中寫上 compile ‘

Redis案例——商品秒殺,購物車

bsp ota get 秒殺 logs list edi use all 秒殺案例: 1 <?php 2 header("content-type:text/html;charset=utf-8"); 3 $redis = ne

iOS 相似淘寶商品詳情查看翻頁效果的實現

nim anim bool with animate resource tlab 更改 tro 基本思路: 1、設置一個 UIScrollView 作為視圖底層,而且設置分頁為兩頁 2、然後在第一個分頁上加入一個 UITableView 而且設置表格

淘寶商品列表以及商品詳情數據抓取

文本 def 銷量 .com [1] 寫入excel d+ pan bind 前段時間老師讓我爬取淘寶的商品列表以及其商品詳情數據,期間遇到了很多問題。最困難的就是淘寶的價格數據是以Ajax異步加載的,這些數據暫時還沒有能力獲取到。 下面介紹一下基本思路。 首先,通過抓