利用Tag来记录当前状态属性

来源:互联网 发布:华为研发投入 知乎 编辑:程序博客网 时间:2024/06/01 23:27

本人做事的风格,就是先上图,再说话,简单明了,方便!
这里写图片描述

要实现上面的效果,有很多种方法可实现,而我下面的,贴出来肯定会被大家喷,但是我只想说setTag()和getTag的用法:

如下:
private static final String TITLE_IMG_TAG_DOWN = “down”;
private static final String TITLE_IMG_TAG_UP = “up”;

//向下的图标        mTitleBar.setTitleImg(R.drawable.arrow_down);        //通过tag去记录当前的状态        mTitleBar.getTitleImgView().setTag(TITLE_IMG_TAG_DOWN);        mTitleBar.getTitleImgView().setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                filterLayoutAnim();            }        });
private void filterLayoutAnim() {        if (isFilterAniming) {            return;        }        isFilterAniming = true;        if (TextUtils.equals(TITLE_IMG_TAG_DOWN, (String) mTitleBar.getTitleImgView().getTag())) {            //向上的图标            mTitleBar.setTitleImg(R.drawable.arrow_up);            //通过tag去设置当前的状态            mTitleBar.getTitleImgView().setTag(TITLE_IMG_TAG_UP);            //加载动画            Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.push_top_in);            animation.setAnimationListener(new AnimationAdapter() {                @Override                public void onAnimationStart(Animation animation) {                    listview.setVisibility(View.VISIBLE);                }                @Override                public void onAnimationEnd(Animation animation) {                    listview.clearAnimation();                    isFilterAniming = false;                }            });            listview.startAnimation(animation);        } else {            mTitleBar.setTitleImg(R.drawable.arrow_down);            mTitleBar.getTitleImgView().setTag(TITLE_IMG_TAG_DOWN);            Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.push_top_out);            animation.setAnimationListener(new AnimationAdapter() {                @Override                public void onAnimationEnd(Animation animation) {                    listview.setVisibility(View.GONE);                    listview.clearAnimation();                    isFilterAniming = false;                }            });            listview.startAnimation(animation);        }    }

以上,没啥好说的,仅仅只是为了tag的用法,因为以前只是在listView和recyclerView中使用过