暫時沒寫完,我會繼續(xù)完善的。
基本控件
APP底部Tab布局

- 這種實現(xiàn)方式中,TabLayout和ViewPager可以相互綁定,還能實現(xiàn)攔截。例如:在點擊沙師弟的時候進行判斷,如果登錄已經(jīng)登錄就切換到沙師弟fragment,否則跳轉到登錄頁面。
- 相互綁定
mViewpager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener
(mTabLayout));
mTabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener
(mViewpager));
- 切換攔截
View userCenter = View.inflate(this, R.layout.navigator_tab_icon_layout, null);
TabLayout.Tab tabUserCenter = tabLayout.newTab();
tabUserCenter.setCustomView(userCenter);
userCenter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (UIUtils.isLogin()) {
//已登錄,切換到用戶中心
mViewPager.setCurrentItem(3, false);
tabUserCenter.select();
} else {
//未登錄,跳轉登錄頁面
startActivity(new Intent(MainActivity.this,LoginActivity.class));
}
}
});
Android Support 25中BottomNavigationView與ViewPager結合實現(xiàn)material Tab標準效果

- 這種實現(xiàn)方式需要配合另外一個功能效果最好,
Vector Asset點這里了解Vector,tab限制3-5個,當個數(shù)超過5個的時候會拋異常,下面是源碼片段
public final class BottomNavigationMenu extends MenuBuilder {
public static final int MAX_ITEM_COUNT = 5;
public BottomNavigationMenu(Context context) {
super(context);
}
@Override
public SubMenu addSubMenu(int group, int id, int categoryOrder, CharSequence title) {
throw new UnsupportedOperationException("BottomNavigationView does not support submenus");
}
@Override
protected MenuItem addInternal(int group, int id, int categoryOrder, CharSequence title) {
if (size() + 1 > MAX_ITEM_COUNT) {
throw new IllegalArgumentException(
"Maximum number of items supported by BottomNavigationView is " + MAX_ITEM_COUNT
+ ". Limit can be checked with BottomNavigationView#getMaxItemCount()");
}
return super.addInternal(group, id, categoryOrder, title);
}
}
下拉刷新
- 該控件是我最喜歡的控件之一,可以隨意定制下拉刷新頭,該項目介紹還提到另外一個加載更多的控件,暫時只支持ListView、GridView,還不支持RecyclerView。
SwipeRefreshLayout
google官方控件

輪播圖
-
一個不錯的輪播圖控件,支持多種動畫特效,如果首頁使用類似ListView這種分布局實現(xiàn)的方式注意重復啟動輪播圖。會導致多次啟動輪播圖。設置一個tag來判斷是否啟動。
ConvenientBanner

右滑退出
-
可以用來做成類似于微信右滑動關閉當前頁面的功能。
SwipeBack
相冊圖片相關
PhotoView
DragPhotoView 基于PhotoView實現(xiàn)的仿微信朋友圈查看大圖功能
-
體驗了一下,效果和微信朋友圈的效果有一拼。
DragPhotoView
-
一個關于相冊圖片選擇庫,類似于微信選擇相冊,內部有集成6.0權限問題。
ImagePicker
RecyclerView
-
對RecyclerView支持上拉加載和下拉刷新的控件。
XRecyclerView - 一些RecyclerView的動畫特效庫
RecyclerView Animators
UltimateRecyclerView
Paginate 侵入式的loadMore
標簽相關
-
CSDN博客之星張鴻洋的一個開源庫,流式布局類型的標簽庫。
flowlayout.gif
-
另一個流式布局的標簽庫。
AndroidTagGroup.jpeg
Toast相關

新手引導


鍵盤相關

- iOS有個3D滾動的控件,Android這邊也有,仿照iOS的效果,差不多都是基于一個叫做WheelView的控件實現(xiàn)的。

音視頻
作者貌似有嫂子情節(jié),該開源框架集成了一個播放器應該有的技能,只需要簡單的幾部就可以實現(xiàn)一個視頻播放,不好的地方就是很多控件沒有放開,需要自己去實現(xiàn),而且不能實現(xiàn)緩存功能。JCVideoPlayerStandard.java是一個標準播放器的代碼,如果需要自定義播放器的可以仿照這個類里面的寫法。不過復制代碼過來的時候注意里面的資源前面的包名去掉。
然而這個作者是個貓控。。。在JieCaoVideoPlayer基礎上進行重構的,支持緩存,很多控件有放開,隨意顯示與隱藏,一鍵靜音功能等。如果需要自定義播放器UI和部分功能跟JieCaoVideoPlayer一樣的做法。

動畫特效
-
仿探探拖拽左滑不喜歡右滑動喜歡,繼承LinearLayout實現(xiàn)的拖拽功能。配合基于TextureView的視頻播放器可以實現(xiàn)單個卡片視頻播放,類似于秒拍的熱榜頁面。如果是SurfaceView會出現(xiàn)拖動的時候有黑底。
SwipeCardsView
-
如絲滑般流暢,類似于樓上的拖拽,只是他是采用的ViewDragHelper類來處理拖拽。
CardSlidePanel
- 這個項目中有一些關于搜索,視頻播放,下載進度等動畫特效。用起來很不錯。









