- CompoundButton 源码分析
- LinearLayout 源码分析
- SearchView 源码解析
- LruCache 源码解析
- ViewDragHelper 源码解析
- BottomSheets 源码解析
- Media Player 源码分析
- NavigationView 源码解析
- Service 源码解析
- Binder 源码分析
- Android 应用 Preference 相关及源码浅析 SharePreferences 篇
- ScrollView 源码解析
- Handler 源码解析
- NestedScrollView 源码解析
- SQLiteOpenHelper/SQLiteDatabase/Cursor 源码解析
- Bundle 源码解析
- LocalBroadcastManager 源码解析
- Toast 源码解析
- TextInputLayout
- LayoutInflater 和 LayoutInflaterCompat 源码解析
- TextView 源码解析
- NestedScrolling 事件机制源码解析
- ViewGroup 源码解析
- StaticLayout 源码分析
- AtomicFile 源码解析
- AtomicFile 源码解析
- Spannable 源码分析
- Notification 之 Android 5.0 实现原理
- CoordinatorLayout 源码分析
- Scroller 源码解析
- SwipeRefreshLayout 源码分析
- FloatingActionButton 源码解析
- AsyncTask 源码分析
- TabLayout 源码解析
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
2. 总体设计
TabLayout继承HorizontalScrollView天生就是一个可以横向滚动的ViewGroup. 我们知道,HorizontalScrollView与ScrollView一样,最多只能包含一个子 View.SlidingTabStrip继承于LinearLayout,是TabLayout的内部类。它是TabLayout唯一的子 View. 所有的TabView都是它的子 View.TabView继承于LinearLayout,以Tab为数据源,来展示 Tab 的样式。最终用 for 循环被 add 进SlidingTabStrip.Tab是一个简单的 View Model 实体类,控制TabView的 title, icon, custom layout id 等属性。TabItem继承于 View. 用于在 layout xml 中来描述 Tab. 需要注意的是,它不会 add 到SlidingTabStrip中去。它的作用是从 xml 中获取到 text,icon,custom layout id 等属性。TabLayout inflate 到TabItem并获取属性到装配到Tab中,最终 add 到SlidingTabStrip中的还是TabView.OnTabSelectedListener是 TabLayout 中的内部接口,用于监听SlidingTabStrip中子TabView选中状态的改变。Mode是 TabLayout 滚动模式的描述,一共有两种状态。MODE_FIXED不可滚动模式,以及MODE_SCROLLABLE可以滚动模式。Gravity是TabView在SlidingTabStrip中 layout 方式的描述。分为:GRAVITY_FILL,GRAVITY_CENTER.
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论