您的位置:首页 > 文旅 > 美景 > 电子商务管理系统_重庆装修公司有哪些_济南疫情最新消息_辽宁和生活app下载安装

电子商务管理系统_重庆装修公司有哪些_济南疫情最新消息_辽宁和生活app下载安装

2024/12/25 12:47:02 来源:https://blog.csdn.net/weixin_60669486/article/details/144557633  浏览:    关键词:电子商务管理系统_重庆装修公司有哪些_济南疫情最新消息_辽宁和生活app下载安装
电子商务管理系统_重庆装修公司有哪些_济南疫情最新消息_辽宁和生活app下载安装

标题所说的沉浸式状态栏实际就是底部有背景图,而状态栏是沉浸效果(可以在背景图上面展示的),如下面的这种效果:

官方API实现

官方新版本出了个api,名为enableEdgeToEdge(),方便我们使用

这种方法主要适用Activity的整个背景图是固定资源(drawable或mipmap里),且是填充全屏的情况

override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)enableEdgeToEdge()setContentView(R.layout.activity_album_info)//设置状态栏显示亮色(白色)的图标和文字WindowCompat.getInsetsController(window, window.decorView).isAppearanceLightStatusBars=falsesetBgAndAdjustStatusBar()}private fun setBgAndAdjustStatusBar() {//适配刘海屏等ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)//这里设置图片整个图片资源v.setBackgroundResource(R.drawable.my_img_4)insets}}

而xml布局中没有其他东西了 ,如下代码所示:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="atute.yelike.micplay.activity.MainActivity"></androidx.constraintlayout.widget.ConstraintLayout >

通过fitsystem属性实现

之前郭霖大佬讲过这个,主要是CoordinatorLayout里去设置这个属性,而用其他layout设置的的话会无效(具体这里不再赘述,详见下面参考链接里的文章)

这个方法适用要灵活控制图片宽高的(主要是可以在布局里放一个imageview,且可以控制图片宽高),如下图UI给的设计稿:

或者可以改成滚动后显示toolbar,具体代码示例参考Android CoordinatorLayout使用示例记录-Stars-One的杂货小窝

布局代码稍微有些多:

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true"tools:context=".activity.AlbumInfoActivity"><!-- 要设置的背景图片,放CollapsingToolbarLayout布局里 --><com.google.android.material.appbar.CollapsingToolbarLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true"><!-- 里面再套个布局,可以是其他的,但得设置fitsSystemWindows属性 --><androidx.constraintlayout.widget.ConstraintLayoutandroid:fitsSystemWindows="true"android:layout_width="match_parent"android:layout_height="match_parent"><!-- 要设置的背景图片--><ImageViewandroid:fitsSystemWindows="true"android:id="@+id/ivBgCover"android:scaleType="fitXY"android:layout_width="match_parent"android:layout_height="0dp"app:layout_constraintDimensionRatio="1:1"android:clipToPadding="false"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout></com.google.android.material.appbar.CollapsingToolbarLayout><!-- 内容布局,可以是其他的布局 --><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><!-- 真正的内容 --></androidx.constraintlayout.widget.ConstraintLayout></androidx.coordinatorlayout.widget.CoordinatorLayout>

Activity代码:

override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)enableEdgeToEdge()setContentView(R.layout.activity_album_info)//设置状态栏显示亮色(白色)的图标和文字WindowCompat.getInsetsController(window, window.decorView).isAppearanceLightStatusBars=false
}

关注灵活就业新业态,关注公账号:贤才宝(贤才宝https://www.51xcbw.com) 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com