本人做事的风格,就是先上图,再说话,简单明了,方便!
要实现上面的效果,有很多种方法可实现,而我下面的,贴出来肯定会被大家喷,但是我只想说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中使用过