仿网易 SlidingMenu+ViewPage+HorizontalScrollView 问题解决

中间遇到问题 HorizontalScrollView 的点击时

需要判断 SlidingMenu左侧是否显示出来,如果出来时点击执行隐藏左侧

如果左侧是隐藏,执行HorizontalScrollView里面的RadioGroup对应的点击事件 (ViewPager 跟随切换等...)

在SlidingMenu里面添加方法

public boolean IsDisplay(){
		int oldScrollX = getScrollX();
		if (oldScrollX == 0) 
			return false;
		else
			return true;
	}
SlidingMenu里面添加方法
public boolean IsDisplay() {
		return mSlidingView.IsDisplay();
	}
SlidingActivity里面添加方法
public boolean IsDisplay() {
		return mSlidingMenu.IsDisplay();
	}
HorizontalScrollView的点击时做判断

setOnCheckedChangeListener里面修改代码

rg_nav_content.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				if(((SlidingActivity) getActivity()).IsDisplay()){
					((SlidingActivity) getActivity()).showLeft();
					return;
				}
				if(rg_nav_content.getChildAt(checkedId)!=null){
					
					TranslateAnimation animation = new TranslateAnimation(
							currentIndicatorLeft ,
							((RadioButton) rg_nav_content.getChildAt(checkedId)).getLeft(), 0f, 0f);
					animation.setInterpolator(new LinearInterpolator());
					animation.setDuration(100);
					animation.setFillAfter(true);
					
					//执行位移动画
					iv_nav_indicator.startAnimation(animation);
					
					mViewPager.setCurrentItem(checkedId);	//ViewPager 跟随�?�� 切换
					
					//记录当前 下标的距�?��侧的 距离
					currentIndicatorLeft = ((RadioButton) rg_nav_content.getChildAt(checkedId)).getLeft();
					
					mHsv.smoothScrollTo(
							(checkedId > 1 ? ((RadioButton) rg_nav_content.getChildAt(checkedId)).getLeft() : 0) - ((RadioButton) rg_nav_content.getChildAt(2)).getLeft(), 0);
				}
			}
		});
就这样凑合着看吧 代码懒得上传了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值