APP SmileMile项目 Login页面+Home页面

一、Login页面用到的知识点:

Rxbinding:

Rxbinding是一个异步响应控件的事件库,可以很好的替代onClick,onChange等事件,同时它基于RxJava提供的操作符又能在事件被处理之前做一些操作

参考资料:http://www.cnblogs.com/zhaoyanjun/p/5535651.html

1.在Login中解决按钮抖动(多次点击一个跳转页面功能的按钮,造成实例化多个页面的问题)
@Override
protected void registerListener() {  
 RxView.clicks(mBtnLogin)
 .throttleFirst(1000, TimeUnit.MILLISECONDS)        
 .subscribe(new Action1() {         
      @Override             
       public void call(Void aVoid) {                
         startLoginAnimator(mBtnLogin);       
        }           
});
}

使用 .throttleFirst(1000, TimeUnit.MILLISECONDS) 操作符,两次点击小于1秒内的事件将不会响应。

2.仿美团顶部导航栏

APP SmileMile项目 Login页面+Home页面_第1张图片
Screenshot_2016-06-26-11-32-43_com.orange.smileapp.png

1.向viewpager中放入多个viewgroup,viewgroup中放的是gridview。

TabPagerAdapter是 ViewPager的适配器 可以看到它传入的是View,这些view在后面放的都会是GridView。

APP SmileMile项目 Login页面+Home页面_第2张图片
Paste_Image.png

2.向Viewpager中加入gridview:

mView是我要传给ViewPager的数据,里面放的是gridview,而这个这在gridview的过程实在for循环中进行的,也就是说,mView(List)中放入了两个gridview。


APP SmileMile项目 Login页面+Home页面_第3张图片
Paste_Image.png

3.向girdview中添加数据:
(1)。可以看到每次向gridview中添加的数据都是mTabs,mTabs是所有要展示的数据的集合。2个gridview,要加载集合中的哪些数据由gridview的适配器做的处理


APP SmileMile项目 Login页面+Home页面_第4张图片
Paste_Image.png

(2) girdview选择要加载的数据

APP SmileMile项目 Login页面+Home页面_第5张图片
Paste_Image.png

a

1.首先,会判断item的个数,保证item不超过8个。
在getCount中做的判断。

2.选择要加载的数据,在convertview中做的判断。

APP SmileMile项目 Login页面+Home页面_第6张图片
Paste_Image.png

index:由外部传入,代表当前的页数,从0开始。
pos:正确的位置,和要加载Tabs中哪个数据,也就是说你传入的tabs不是全部都加载的,而是被有选择的加载的。

第一页(第一个gridview)的时候从0开始计位置,gridview会加载tabs中的前8个数据。
第二页(第二哥gridview)则会加载tabs中第9个开始的数据(position会是8,因为list同样是0代表第一位)。

你可能感兴趣的:(APP SmileMile项目 Login页面+Home页面)