84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
我想在5.0 或者4.4 操作系统都实现沉淀式状态栏或透明状态栏,最好全部都采用style 的方式实现,最好不用这个开源库https://github.com/jgilfelt/SystemBarTint求解决思路
经过这几天的思考和研究,发现使用ActionBar,和不使用ActionBar,改为Toolbar 效果完全是不一样的,那在这两种情况下是否都可以完美的实现呢
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
对于top view, 可以用style,
但window flag还是需要代码做版本支持判断的,
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
是没法在style中表示的,style自己做不了版本标识区别。
activity_main.xml
MainActivity.java
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } } }
自己的解决方案:https://coding.net/u/tianshaokai/p/MaterialDesignDemo/git低版本实现Material Design 的两种方式https://github.com/Witype/SystemBarTintDemohttps://github.com/Witype/ToolbarStatusDemo
实现状态栏沉浸非常简单,而且只需要通过style配置在values-v19下的styles.xml里定义如下主题,并在Manifest.xml里将应用主题确定为这个主题即可。
values-v19
styles.xml
Manifest.xml
android:windowTranslucentStatus表示状态栏透明android:windowTranslucentNavigation表示导航栏(虚拟按键栏)透明
android:windowTranslucentStatus
android:windowTranslucentNavigation
沉浸是小事,关键麻烦在对layout布局里的改动,fitsSystemWindows的优化,凭经验告诉你,SystemBarTint已经算是最简单的解决方案。
layout
fitsSystemWindows
对于top view, 可以用style,
但window flag还是需要代码做版本支持判断的,
是没法在style中表示的,style自己做不了版本标识区别。
activity_main.xml
MainActivity.java
自己的解决方案:https://coding.net/u/tianshaokai/p/MaterialDesignDemo/git
低版本实现Material Design 的两种方式
https://github.com/Witype/SystemBarTintDemo
https://github.com/Witype/ToolbarStatusDemo
实现状态栏沉浸非常简单,而且只需要通过style配置
在
values-v19
下的styles.xml
里定义如下主题,并在Manifest.xml
里将应用主题确定为这个主题即可。android:windowTranslucentStatus
表示状态栏透明android:windowTranslucentNavigation
表示导航栏(虚拟按键栏)透明沉浸是小事,关键麻烦在对
layout
布局里的改动,fitsSystemWindows
的优化,凭经验告诉你,SystemBarTint已经算是最简单的解决方案。