糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > android 微博tab Android实现新浪微博客户端tab时遇到bug

android 微博tab Android实现新浪微博客户端tab时遇到bug

时间:2024-09-02 20:56:30

相关推荐

android 微博tab Android实现新浪微博客户端tab时遇到bug

问题解决了、详细看回答一楼。。

但是有一个新的问题出现了,那就是在对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》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。