Android 轻松实现仿淘宝地区选择

本文介绍如何在Android中实现仿淘宝地区选择的功能。通过使用Fragment、ListView和属性动画,详细讲解了从准备工作到项目结构,再到具体代码实现的全过程。文章附带代码示例链接,帮助开发者快速理解和实现类似效果。

代码地址如下:
http://www.demodashi.com/demo/11122.html

一、准备工作

Android开发环境,学习Android的童鞋肯定都知道了,这里我就不累述了。

二、运行效果

说了效果可能不太直观,下面上两张图看看效果
淘宝地区选择效果
淘宝

再来一张自己的效果
这里写图片描述

gif的效果可能不太好,大家自己用Android手机打开淘宝看看

三、项目结构

四、程序实现

展示很简单,ListView就可以了。对于动画效果,只需要在getView的时候获取到要展示的View,通过属性动画修改translationY就ok啦。由于地区选择是一个界面,所以这里还用到了Fragment的 addToBackStack知识

1、用来展示的Fragment

用一个Fragment来接受parentCode参数来获取父地区的所有子地区,然后进行显示。这里用Fragment来做是因为用Activity的话,这样的连续点击都是同一类的界面不太适合。

public class AreaFragment extends Fragment implements AdapterView.OnItemClickListener {
   
   

    private static final String ARG_PARAM1 = "parentCode";
    @Bind(R.id.refresh_list_view)
    ListView mRefreshListView;
    @Bind(R.id.loadingBar)
    ProgressBar mLoadingBar;

    private String mParam1;//parentCode参数

    OkHttpClient mOkHttpClient = new OkHttpClient();

    private OnFragmentInteractionListener mListener;

    private AreaAdapter adapter;//地区adapter

    public AreaFragment() {
    }

    /**
     * Use this factory method to create a new instance of
     * this fragment using the provided parameters.
     *
     * @param param1 Parameter 1.
     * @return A new instance of fragment AreaFragment.
     */
    public static AreaFragment newInstance(String param1) {
        AreaFragment fragment = new AreaFragment();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            //获取父地区的code,用来查询子地区
            mParam1 = getArguments().getString(ARG_PARAM1);

        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstance
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值