让Android 5.0, 4.4 系统都实现沉淀式状态栏或透明状态栏的方法
高洛峰
高洛峰 2017-04-17 15:26:15
0
3
616

我想在5.0 或者4.4 操作系统都实现沉淀式状态栏或透明状态栏,最好全部都采用style 的方式实现,最好不用这个开源库https://github.com/jgilfelt/SystemBarTint求解决思路

经过这几天的思考和研究,发现使用ActionBar,和不使用ActionBar,改为Toolbar 效果完全是不一样的,那在这两种情况下是否都可以完美的实现呢

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답 (3)
PHPzhong

对于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/SystemBarTintDemo
    https://github.com/Witype/ToolbarStatusDemo

      Peter_Zhu

      实现状态栏沉浸非常简单,而且只需要通过style配置
      values-v19下的styles.xml里定义如下主题,并在Manifest.xml里将应用主题确定为这个主题即可。

      android:windowTranslucentStatus表示状态栏透明
      android:windowTranslucentNavigation表示导航栏(虚拟按键栏)透明

      沉浸是小事,关键麻烦在对layout布局里的改动,fitsSystemWindows的优化,
      凭经验告诉你,SystemBarTint已经算是最简单的解决方案。

        최신 다운로드
        더>
        웹 효과
        웹사이트 소스 코드
        웹사이트 자료
        프론트엔드 템플릿
        회사 소개 부인 성명 Sitemap
        PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!