手机淘宝订单页面设计怎么做?需要什么代码?
6104人阅读
  •   我们在淘宝购物下单了后,肯定是会去看订单页面的,因为这里,大家看到物流的信息和订单的编码等,最近有网友咨询小编手机淘宝订单页面设计方面的内容,想知道该如何去设计。

      订单的页面效果如下:

      手机淘宝订单页面设计.png

      需要设计订单页面话,一些代码是需要而更改的。布局代码如下。

      [plain] view plain copy

      布局很简单,就不多说明,然后就是mainactivity的代码了

      [plain] view plain copypackage com.taobao.pll.tborderdemo;

      import android.app.Activity;

      import android.content.Intent;

      import android.os.Bundle;

      import android.view.View;

      import android.widget.RelativeLayout;

      public class MainActivity extends Activity {

      private RelativeLayout rl_person_alllist;//全部订单

      private RelativeLayout rl_person_wait_pay;//待支付

      private RelativeLayout rl_person_send;//待发货

      private RelativeLayout rl_person_wait_get;//待收货

      private RelativeLayout rl_person_aftermarket;//售后

      private Intent intent;//需要启动的界面

      @Override

      protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_main);

      initView();

      initData();

      }

      private void initData() {

      /**

      * 全部订单

      */

      rl_person_alllist.setOnClickListener(new View.OnClickListener() {

      @Override

      public void onClick(View view) {

      intent = new Intent(getApplicationContext(),OrderActivity.class);

      intent.putExtra("page",0);

      startActivity(intent);

      }

      });

      /**

      * 待支付

      */

      rl_person_wait_pay.setOnClickListener(new View.OnClickListener() {

      @Override

      public void onClick(View view) {

      intent = new Intent(getApplicationContext(),OrderActivity.class);

      intent.putExtra("page",1);

      startActivity(intent);

      }

      });

      /**

      * 待发货

      */

      rl_person_send.setOnClickListener(new View.OnClickListener() {

      @Override

      public void onClick(View view) {

      intent = new Intent(getApplicationContext(),OrderActivity.class);

      intent.putExtra("page",2);

      startActivity(intent);

      }

      });

      /**

      * 待收货

      */

      rl_person_wait_get.setOnClickListener(new View.OnClickListener() {

      @Override

      public void onClick(View view) {

      intent = new Intent(getApplicationContext(),OrderActivity.class);

      intent.putExtra("page",3);

      startActivity(intent);

      }

      });

      /**

      * 售后

      */

      rl_person_aftermarket.setOnClickListener(new View.OnClickListener() {

      @Override

      public void onClick(View view) {

      intent = new Intent(getApplicationContext(),OrderActivity.class);

      intent.putExtra("page",4);

      startActivity(intent);

      }

      });

      }

      private void initView() {

      rl_person_alllist = (RelativeLayout) findViewById(R.id.rl_person_alllist);

      rl_person_wait_pay = (RelativeLayout) findViewById(R.id.rl_person_wait_pay);

      rl_person_send = (RelativeLayout) findViewById(R.id.rl_person_send);

      rl_person_wait_get = (RelativeLayout) findViewById(R.id.rl_person_wait_get);

      rl_person_aftermarket = (RelativeLayout) findViewById(R.id.rl_person_aftermarket);

      }

      }

      这里需要说明就只有一点:intent.putExtra("page",0);因为每个点击都需要对应跳转页面的页卡选中哪个,所以需要传入一个page值

      再来看OrderActivity的局部,这里稍微复杂那么一点点吧,使用的是radiogroup+viewpager,但是需要禁止左右滑动的,所以

      我这里的viewpager是自定义的,先看布局,再看自定的viewpager吧。

      [plain] view plain copy

      [plain] view plain copypackage com.taobao.pll.tborderdemo.view;

      import android.content.Context;

      import android.support.v4.view.ViewPager;

      import android.util.AttributeSet;

      import android.view.MotionEvent;

      /**

      * Created by pll on 2016/6/26.

      */

      public class CustomViewPager extends ViewPager{

      private boolean isCanScroll = false;

      public CustomViewPager(Context context) {

      super(context);

      }

      public CustomViewPager(Context context, AttributeSet attrs) {

      super(context, attrs);

      }

      public void setScanScroll(boolean isCanScroll){

      this.isCanScroll = isCanScroll;

      }

      @Override

      public void scrollTo(int x, int y){

      // if (isCanScroll){

      super.scrollTo(x, y);

      // }

      }

      @Override

      public void setCurrentItem(int item) {

      // TODO Auto-generated method stub

      super.setCurrentItem(item);

      }

      @Override

      public boolean onTouchEvent(MotionEvent arg0) {

      // TODO Auto-generated method stub

      if (isCanScroll) {

      return super.onTouchEvent(arg0);

      } else {

      return false;

      }

      }

      @Override

      public boolean onInterceptTouchEvent(MotionEvent arg0) {

      // TODO Auto-generated method stub

      if (isCanScroll) {

      return super.onInterceptTouchEvent(arg0);

      } else {

      return false;

      }

      }

      }

      因为禁止左右滑动,viewpager也只是对 ontouchevent事件做了些处理,很简单,也就不解释了。

      再来看OrderActivity.java代码

      [plain] view plain copypackage com.taobao.pll.tborderdemo;

      import android.graphics.Color;

      import android.os.Bundle;

      import android.support.v4.app.Fragment;

      import android.support.v4.app.FragmentActivity;

      import android.support.v4.view.ViewPager;

      import android.util.DisplayMetrics;

      import android.widget.ImageView;

      import android.widget.LinearLayout;

      import android.widget.RadioButton;

      import android.widget.RadioGroup;

      import com.taobao.pll.tborderdemo.adapter.FragmentAdapter;

      import com.taobao.pll.tborderdemo.fragment.OrderGetFragment;

      import com.taobao.pll.tborderdemo.fragment.OrderListFragment;

      import com.taobao.pll.tborderdemo.fragment.OrderPayFragment;

      import com.taobao.pll.tborderdemo.fragment.OrderSendFragment;

      import com.taobao.pll.tborderdemo.fragment.OrderServiceFragment;

      import com.taobao.pll.tborderdemo.view.CustomViewPager;

      import java.util.ArrayList;

      import java.util.List;

      public class OrderActivity extends FragmentActivity {

      private List mFragmentList;//五个界面的集合

      private FragmentAdapter mFragmentAdapter;//界面适配器

      private CustomViewPager vp_order;//自定义viewpager

      private int page;//得到选择的页码

      private RadioGroup rg_order;//顶部页码

      /**

      * Tab显示内容TextView

      */

      private RadioButton tv_order_all, tv_order_pay, tv_order_send, tv_order_get,tv_order_service;

      //顶部导航栏的集合

      private ArrayList tabList;

      /**

      * Tab的那个引导线

      */

      private ImageView mTabLineIv;

      /**

      * Fragment

      */

      private OrderListFragment mOrderListFragment;//全部订单

      private OrderPayFragment mOrderPayFragment;//待支付

      private OrderSendFragment mOderSendFragment;//待发货

      private OrderGetFragment mOderGetFragment;//待收货

      private OrderServiceFragment mOderServiceFragment;//售后服务

      /**

      * ViewPager的当前选中页

      */

      private int currentIndex;

      /**

      * 屏幕的宽度

      */

      private int screenWidth;

      @Override

      protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_order);

      initView();

      initData();

      initTabLineWidth();

      }

      /**

      * 设置滑动条的宽度为屏幕的1/5(根据Tab的个数而定)

      */

      private void initTabLineWidth() {

      DisplayMetrics dpMetrics = new DisplayMetrics();

      getWindow().getWindowManager().getDefaultDisplay()

      .getMetrics(dpMetrics);

      screenWidth = dpMetrics.widthPixels;

      LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mTabLineIv

      .getLayoutParams();

      lp.width = screenWidth / 5;

      mTabLineIv.setLayoutParams(lp);

      }

      private void initData() {

      /**

      * 进入时候根据page值设置导航栏选中哪个

      */

      initDataForTopPage();

      /**

      * 加载引导页的数据

      */

      mFragmentList = new ArrayList();

      mOrderListFragment = new OrderListFragment();

      mOrderPayFragment = new OrderPayFragment();

      mOderSendFragment = new OrderSendFragment();

      mOderGetFragment = new OrderGetFragment();

      mOderServiceFragment = new OrderServiceFragment();

      mFragmentList.add(mOrderListFragment);

      mFragmentList.add(mOrderPayFragment);

      mFragmentList.add(mOderSendFragment);

      mFragmentList.add(mOderGetFragment);

      mFragmentList.add(mOderServiceFragment);

      mFragmentAdapter = new FragmentAdapter(this.getSupportFragmentManager(), mFragmentList);

      vp_order.setAdapter(mFragmentAdapter);

      vp_order.setCurrentItem(page);

      vp_order.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

      @Override

      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

      LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mTabLineIv

      .getLayoutParams();

      /**

      * 利用currentIndex(当前所在页面)和position(下一个页面)以及offset来

      * 设置mTabLineIv的左边距 滑动场景:

      * 记5个页面,

      * 从左到右分别为0,1,2,3,4

      * 0->1; 1->2; 2->3; 3->4; 4->3; 3->2;2->1; 1->0

      */

      if (currentIndex == 0 && position == 0)// 0->1

      {

      lp.leftMargin = (int) (positionOffset * (screenWidth * 1.0 / 5) + currentIndex

      * (screenWidth / 5));

      } else if (currentIndex == 1 && position == 0) // 1->0

      {

      lp.leftMargin = (int) (-(1 - positionOffset)

      * (screenWidth * 1.0 / 5) + currentIndex

      * (screenWidth / 5));

      } else if (currentIndex == 1 && position == 1) // 1->2

      {

      lp.leftMargin = (int) (positionOffset * (screenWidth * 1.0 / 5) + currentIndex

      * (screenWidth / 5));

      } else if (currentIndex == 2 && position == 1) // 2->1

      {

      lp.leftMargin = (int) (-(1 - positionOffset)

      * (screenWidth * 1.0 / 5) + currentIndex

      * (screenWidth / 5));

      } else if (currentIndex == 2 && position == 2) // 2->3

      {

      lp.leftMargin = (int) (positionOffset * (screenWidth * 1.0 / 5) + currentIndex

      * (screenWidth / 5));

      } else if (currentIndex == 3 && position == 3) // 3->4

      {

      lp.leftMargin = (int) (positionOffset * (screenWidth * 1.0 / 5) + currentIndex

      * (screenWidth / 5));

      } else if (currentIndex == 3 && position == 2) // 3->2

      {

      lp.leftMargin = (int) (-(1 - positionOffset)

      * (screenWidth * 1.0 / 5) + currentIndex

      * (screenWidth / 5));

      } else if (currentIndex == 4 && position == 3) // 4->3

      {

      lp.leftMargin = (int) (-(1 - positionOffset)

      * (screenWidth * 1.0 / 5) + currentIndex

      * (screenWidth / 5));

      } else if (currentIndex == 4 && position == 4) // 4->3

      {

      lp.leftMargin = (int) (positionOffset * (screenWidth * 1.0 / 5) + currentIndex

      * (screenWidth / 5));

      }

      mTabLineIv.setLayoutParams(lp);

      }

      /**

      * position :当前页面,及你点击滑动的页面 offset:当前页面偏移的百分比

      * offsetPixels:当前页面偏移的像素位置

      */

      @Override

      public void onPageSelected(int position) {

      resetTextView();

      switch (position) {

      case 0:

      tv_order_all.setTextColor(Color.BLUE);

      break;

      case 1:

      tv_order_pay.setTextColor(Color.BLUE);

      break;

      case 2:

      tv_order_send.setTextColor(Color.BLUE);

      break;

      case 3:

      tv_order_get.setTextColor(Color.BLUE);

      break;

      case 4:

      tv_order_service.setTextColor(Color.BLUE);

      break;

      }

      currentIndex = position;

      }

      /**

      * state滑动中的状态 有三种状态(0,1,2) 1:正在滑动 2:滑动完毕 0:什么都没做。

      */

      @Override

      public void onPageScrollStateChanged(int state) {

      }

      });

      /**

      * 顶部导航界面切换的监听

      */

      rg_order.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

      @Override

      public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {

      switch (checkedId) {

      case R.id.tv_order_all:

      vp_order.setCurrentItem(0);

      break;

      case R.id.tv_order_pay:

      vp_order.setCurrentItem(1);

      break;

      case R.id.tv_order_send:

      vp_order.setCurrentItem(2);

      break;

      case R.id.tv_order_get:

      vp_order.setCurrentItem(3);

      break;

      case R.id.tv_order_service:

      vp_order.setCurrentItem(4);

      break;

      }

      }

      });

      }

      private void initDataForTopPage() {

      vp_order.setCurrentItem(0);

      tabList = new ArrayList<>();

      tabList.add(R.id.tv_order_all);

      tabList.add(R.id.tv_order_pay);

      tabList.add(R.id.tv_order_send);

      tabList.add(R.id.tv_order_get);

      tabList.add(R.id.tv_order_service);

      rg_order.check(tabList.get(page));

      resetTextView();

      switch (page){

      case 0:

      tv_order_all.setTextColor(Color.BLUE);

      break;

      case 1:

      tv_order_pay.setTextColor(Color.BLUE);

      break;

      case 2:

      tv_order_send.setTextColor(Color.BLUE);

      break;

      case 3:

      tv_order_get.setTextColor(Color.BLUE);

      break;

      case 4:

      tv_order_service.setTextColor(Color.BLUE);

      break;

      }

      currentIndex = page;

      }

      private void initView() {

      vp_order = (CustomViewPager)findViewById(R.id.vp_order);

      tv_order_all = (RadioButton)findViewById(R.id.tv_order_all);

      tv_order_pay = (RadioButton)findViewById(R.id.tv_order_pay);

      tv_order_send = (RadioButton)findViewById(R.id.tv_order_send);

      tv_order_get = (RadioButton)findViewById(R.id.tv_order_get);

      tv_order_service = (RadioButton)findViewById(R.id.tv_order_service);

      mTabLineIv = (ImageView)findViewById(R.id.mTabLineIv);

      rg_order = (RadioGroup)findViewById(R.id.rg_order);

      page = getIntent().getIntExtra("page", -1);

      }

      /**

      * 重置颜色

      */

      private void resetTextView() {

      tv_order_all.setTextColor(Color.parseColor("#777777"));

      tv_order_pay.setTextColor(Color.parseColor("#777777"));

      tv_order_send.setTextColor(Color.parseColor("#777777"));

      tv_order_get.setTextColor(Color.parseColor("#777777"));

      tv_order_service.setTextColor(Color.parseColor("#777777"));

      }

      }

      这里用到的fragment界面布局很简单,就不粘贴出来了,需要说明的是Tab的引导线只根据viewpager和界面的宽度来设定的。

      代码注释已经详细说明,还有个需要注意的是,如果禁止了左右滑动,直接代码调用setCurrentItem(page)是不会调用。

      setOnPageChangeListener中的onPageSelected方法,所以需要在传入page值得时候,就手动把引导线和字体颜色进行改变。

      其实订单页面设计方面已经牵扯到了程序方面了,这个都是技术的问题了。需要懂开发的朋友去进行操作哦,至于设计所用到的一些代码,小编在以上的内容中已经完全为大家整理出来了哦。

      推荐阅读:

      为什么淘宝查看不了订单详情页?买家如何看?

      淘宝订单页面怎么设置发货?如何批量免邮?

      为什么淘宝订单页面不显示抵扣淘金币?购物怎么默认抵扣金币?

    查看更多相似文章
    发表评论
    昵称
    问答
    网上开店
    淘宝运营
    活动大促
    其他

    ©Copyright ©2007-2017 www.kaitao.cn (开淘网) All Rights Reserved