我的一些demo集合。
ConstraintLayout:
- 约束类型;
- 偏移;
- Guideline, Barrier 辅助布局,Guideline 本身位置不变,元素相对其变化;Barrier 根据元素位置变化而变化;
- Chain,链式比例布局
ToolBar:
现在不推荐使用 ActionBar,推荐使用 ToolBar;使用 ToolBar 之前需要禁用 ActionBar, 禁用 ActionBar 方法:
-
方法一:AndroidManifest.xml 文件中将 Activity 配置为 NoActionBar;
-
方法二:使用 Java 代码隐藏 ActionBar,代码如下:
ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.hide(); }
ToolBar 中的 action 只会显示图标,menu 中的 action 只会显示文字。
由于一般会将 Activity 设置为 AppTheme.NoActionBar,实际使用的是浅色主题,而头部 ToolBar 一般需要深色主题,所以需要重新单独设置 ToolBar 的 theme,即 android:theme="@style/AppTheme.AppBarOverlay"; ToolBar theme 设置为 AppTheme.AppBarOverlay 后,上面弹出的菜单等变成使用了深色主题,此时想要将弹出的菜单设置回浅色主题需要使用 AppTheme.PopupOverlay,即 app:popupTheme="@style/AppTheme.PopupOverlay"。
状态栏:
为了实现各种特殊的状态栏效果,比如透明状态栏、渐变色状态栏等等,实现时应当使 content 延伸至状态栏区域,然后在 content 顶部加一个状态栏高度的占位 view,接着可以给占位 view 设置各种背景色等等。比如:
提交: a6155a928f953dd880713a3d5ff68c884fa6f026 [a6155a9]
父级: cbc406b848
作者: Jiang Zhuoyan <jiangzhuoyan1984@gmail.com>
日期: 2019年4月9日 星期二 10:36:34
提交者: Jiang Zhuoyan
StatusBarHelper#translucent() 方法可以实现透明状态栏效果,他会使得 content 延伸至状态栏,需要另一个状态栏高度的view作为占位,即 mVStatusBarPlaceHolder。
Change-Id: Ie5f105323598ca42e6f0ddb837f1167a759dd136