问题解决了、详细看回答一楼。。
但是有一个新的问题出现了,那就是在对RadioGroup设置onTouchListener监听器的时候,一直触发不了事件。。是因为RadioGroup设置不了触摸监听器吗还是怎么样?
·······························
我想要做一个类似新浪微博客户端的tab显示,当我选中某个按钮时,会有一个橙色的显示条表示选中,新浪微博客户端截图如下:
我用了RadioGroup和自定义了一个继承LinearLayout的自定义控件(用来实现橙色条的显示),然后用TranslateAnimation来控制橙色下标的显示和移动动画、如下图所示。。
下面是控制RadioGroup的监听器
/**
*ul_fm是我的自定义控件,rg_fm是radioGroup控件
*/
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
int index = group.indexOfChild(rg_fm.findViewById(checkedId));
ul_fm.setCurrentItem(index);
}
自定义控件实现的代码:
/**
* 有动画的切换底部橙色导航栏
*
* @param item 需要显示橙色的下标
*/
public void setCurrentItem(int item) {
final View oldView = getChildAt(mCurrentItem);
final View newView = getChildAt(item);
TranslateAnimation translateAnimation = new TranslateAnimation(
Animation.REVERSE, 0,
Animation.REVERSE, item - mCurrentItem,
Animation.REVERSE, 0,
Animation.REVERSE, 0);
translateAnimation.setDuration(20);
translateAnimation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
oldView.setBackgroundResource(R.color.transparent);
newView.setBackgroundResource(R.color.orange);
oldView.clearAnimation();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
oldView.setAnimation(translateAnimation);
mCurrentItem = item;
invalidate();
}
但是重点来了,实现了点击可以切换橙色下标的动画,但是有一个严重的bug,就是当我连续且快速的同时点击两个按钮时,会出现以下的情况,同时显示了两个橙色下标。。。
求大神们帮忙看看
如果觉得《android 微博tab Android实现新浪微博客户端tab时遇到bug》对你有帮助,请点赞、收藏,并留下你的观点哦!