安卓界面控件滑动置顶

前几天项目需要实现那种控件滑动置顶悬浮的效果,类似于美团网的购买按钮,从网上找到一些解决的办法,基本就是在顶部先写一个一样的置顶控件隐藏,置顶控件滑到顶部时,次控件在显示。但是,项目里面需要滑动的部分下方是两个viewpager,并且通过RadioGroup和RadioButton去实现下方viewpager的左右滑动切换如果采用隐藏显示的方法RadioButton就不好去做判断。经过我不断地寻找,在CSDN上找到了一种解决方法: Android菜单控件置顶悬浮,这种方法在效果上基本可以达到我想要实现的那种效果。可是吧,本人太愚钝,看不懂原作者的代码,在评论区留言求源代码,作者也没有回复,于是又开始了原代码寻找之旅。

经过不懈的努力,终于找到了一个可用的方法,原作者把叫做共同头部+ViewPager+ListView。然后,个人厚颜无耻的在作者的Github把源代码给Download下来了,经过了稍微的修改,整体上已经达到了项目的需求效果。

因为原作者并没有给代码太多的注释,所以我在把源代码Download下来之后还研究了两天的时间,现在把个人研究的成果做一个简短的记录。

首先,第一个遇到的问题是导入的问题,原作者的项目是用AndroidStudio开发的,Android Studio什么都好,就是在导入项目的时候会无缘无故包一大堆的错误,重点还是在build.gradle上,有时候需要删掉build.gradle里面的一些东西,有时候又得改build.gradle里面的一些东西(比如sdk版本之类的)。

源代码你里面viewpage上包括了ListView(AdapterView)、RecyclerView、ScrollView三种child,我需要用到的只有ListView这一种。于是删掉了RecyclerView和ScrollView。而且我的下方viewpag只有两页,起初在项目的myscrolllayout\fragment\base\BasePagerFragment.java里面修改成两个listview的时候,运行查看结果发现中间的标题部分width死活不能math_parent。后来研究了一会com.astuetz.PagerSlidingTabStrip这个类,发现1行处private boolean shouldExpand = false;当时去百度翻译了一下shouldExpand这个词:扩大。好啦就是这个了改成true!顺便的,我还在PagerSlidingTabStrip的PageListener方法里面加入了改变tab颜色的代码,

//被选中的tab字体变色
View v,v1;
if(position==0){
   v = tabsContainer.getChildAt(0);
   v1 = tabsContainer.getChildAt(1);
}else{
   v = tabsContainer.getChildAt(1);
   v1 = tabsContainer.getChildAt(0);
}
if (v instanceofTextView||v1 instanceof TextView){
   TextView tab = (TextView) v;
   tab.setTextColor(tabTextColor2);
   TextView tab2 = (TextView) v1;
   tab2.setTextColor(tabTextColor);
}
其他的地方就没有做太大的改动了,已经达到了项目需求的效果了。

上传的修改过的Demo地址:点击这里


 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值