Android沉浸式状态栏
16lz
2022-06-17
新建项目,并新建 Abstarct BaseActivity
继承自AppCompatActivity
新建虚方法:
public abstract void initView(Bundle saved); public abstract void initData();
打开build.gradle文件,加入沉浸式状态栏依赖如下:
compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
在BaseActivity中完成沉浸式状态栏的初始化,并未Xml布局文件根节点添加如下属性:
沉浸式状态栏初始化:
private SystemBarTintManager systemBarTintManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } initView(savedInstanceState); initTransparentStatusBar(); initData(); } /* * transparent status bar * */ public void initTransparentStatusBar(){ systemBarTintManager = new SystemBarTintManager(this); systemBarTintManager.setStatusBarTintEnabled(true); systemBarTintManager.setNavigationBarTintEnabled(true); systemBarTintManager.setTintColor(0); final Drawable drawable = ContextCompat.getDrawable(this, R.color.topBarBgColor); systemBarTintManager.setStatusBarTintDrawable(drawable); }
添加属性:
android:clipToPadding="true" android:fitsSystemWindows="true"
最后修改MainActivity继承自BaseActivity,并实现方法,代码如下:
public class MainActivity extends BaseActivity { @Override public void initView(Bundle saved) { setContentView(R.layout.activity_main); } @Override public void initData() { }}
运行效果图如下:
完整源码下载:源码
更多相关文章
- android PopupWindow 底部阴影外部空间取消
- Android(安卓)M 去除抽屉模式
- Android中setContentView(int laoutId) 干了些什么事
- android socket 百度地图 实时定位
- Android(安卓)RadioButton 图片位置和大小
- Android(安卓)TextView限定行数最大值,点击按钮显示所有内容
- Android创建快捷方式(shortcut)
- android 7.0 制作ota差分包
- Eclipse 开发 Android, Hello, DatePicker (学习7)