首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android Compose中沉浸式设计和导航栏的处理

简单写一篇文章捕获一下焦点 Material Design风格的顶部和底部导航栏 Compose中Material Design风格的设计我们的做法如下: 1、使用Scafoold作为页面的顶级,Scafoold...中承载topbar和bottombar分别作为顶部导航栏和底部导航栏。...状态 处理前: 处理后: 结论是经过我们的处理后解决了状态栏的遮挡 BottomBar设计 实现方式 因为使用ProvideWindowInsets包裹后底部导航栏顶到了底部,所以需要填充一个底部导航栏高度的...状态 处理前: 处理后: 结论是经过我们的处理后解决了底部导航栏的遮挡问题 状态栏和底部导航栏颜色的处理 状态栏和底部导航栏颜色设置 依赖 implementation "com.google.accompanist...如何处理内容部分超出底部导航栏的区域 使用WindowCompat.setDecorFitsSystemWindows(window, false)处理了页面后,Scafoold的内容区域也会被顶到底部导航栏的下方

3.2K20

责任链模式以及在 Android 中的应用

他的处理逻辑大概是这样的,从链头开始传递,直到找到处理他的对象为止。 责任链设计模式有一个很明显的好处,请求者与处理者直接耦合度大大降低,他们之间甚至可以互相不知道对方的存在。...从上面请假的例子中,我们可以看到,当我们需要请假的时候,我们直接调用请假的接口,无需关心处理者到底是谁,即把请求者和处理者之间的逻辑剥离开来,降低耦合度。...Android 中的体现 ViewGroup 事件传递 还记得 Android 总的事件分发机制吗,主要有三个方法,dispatchTouchEvent,onInterceptTouchEvent,onTouchEvent...View是否拦截事件,true表示 不拦截事件,false表示拦截事件 下面引用图解 Android 事件分发机制这一篇博客的内容 ?...有序广播 Android 中的 BroastCast 分为两种,一种时普通广播,另一种是有序广播。普通广播是异步的,发出时可以被所有的接收者收到。

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基础篇章:关于 React Native 之 DrawerLayoutAndroid 组件的讲解

    看名字我们就知道这个组件仅限 Android 平台能用。Android 中的 DrawerLayout 就是一个抽屉导航组件,所以这个组件的功能当然也是一样的。...我们的这个抽屉导航视图一开始是看不见的,就像抽屉一样,你不拉开抽屉你看不到东西,所以导航视图可以从drawerPosition指定的窗口侧面拖拽出来,并且抽屉的宽度可以使用drawerWidth属性来指定...func 每当导航视图(抽屉)产生交互相互作用的时候调用此回调函数 onDrawerStateChanged func 每当抽屉的状态变化时调用此回调函数。...抽屉可以有3种状态: dle(空闲),表示现在导航条上没有任何正在进行的交互。 dragging(拖拽中),表示用户正在与导航条进行交互。...settling(停靠中),表示用户刚刚结束与导航条的交互,导航条正在结束打开或者关闭的动画。

    2.5K70

    Android Compose 新闻App(八)抽屉布局、动态权限、拍照返回

    ④ HomeViewModel 二、抽屉布局 ① 添加菜单 ② 打开抽屉 三、导航疫情页面 四、动态权限请求 ① 添加依赖 ② 权限请求 五、拍照显示图片 ① ActivityResult API ②...二、抽屉布局 这个抽屉布局通过主页面的左上角的菜单点击进行打开,因此我们首先添加一个菜单按钮和一个疫情新闻按钮,在HomePage中, ① 添加菜单 增加如下代码: navigationIcon...三、导航疫情页面   在前几篇文章中的疫情页面已经安静很久了,我们不能忘记它了,所以我们在主页面导航到疫情新闻页面。...然后我们在AndroidManifest.xml中添加权限配置 android:name="android.permission.CAMERA"/> 下面我们可以想一下权限请求的入口在哪里...还记得之前在Android中的ActivityResult API吗?

    2.3K20

    深入浅出 NavigationUI | MAD Skills

    在本文中,我们将为大家讲解另外一个用例,即类似操作栏 (Action Bar)、底部标签栏或者抽屉型导航栏之类的 UI 组件如何在应用中实现导航功能。...我需要在应用中增加一些页面,所以有必要使用抽屉式导航栏或者底部标签栏来辅助用户导航。但是我们该如何使用这些 UI 组件来集成导航功能呢?通过点击监听器手动触发导航动作吗? 不需要!无需任何监听器。...抽屉式导航栏 虽然看上去不错,但是如果您设备的屏幕尺寸较大,那么底部标签栏恐怕无法提供最佳的用户体验。...setupWithNavController(navController) } 现在当我在屏幕较宽的设备上运行应用时,可以看到抽屉式导航栏已经设置了 MenuItem,并且在导航图中,MenuItem...Donut Tracker 应用并不需要底部标签栏或者抽屉式导航栏,但是添加了新的功能和目的页面后,NavigationUI 可以很大程度上帮助我们处理应用中的导航功能。

    3K30

    Android Q 手势导航背后的故事

    我们想在这篇文章中和大家分享一下,团队在整个开发过程中克服了哪些挑战,转用手势导航的理由是什么,以及所作的一些妥协。...应用抽屉和其它侧滑操作 经过多番权衡与谨慎考量,我们最终决定将侧滑设为返回操作,但是在此过程中,尤其是在降低手势对应用的影响方面,我们作出了许多艰难的取舍。...比如说,我们发现 3% 到 7% 的用户 (具体比例因应用而异) 通过侧滑手势打开应用导航抽屉,其余用户则选择点击汉堡形菜单按钮来弹出抽屉。...在 Android Q 模式下,返回手势在最初 3 天的使用频率较低,但过了这段时间之后,用户每天进行返回操作的次数将与三键导航及 Android P 导航中的次数持平。 开发者该如何应对?...我们十分注重对开发者的支持,与此同时,我们也期望为您提供全方位帮助,让您在应用中顺利添加手势导航。

    2.2K50

    Anroid Wear OS 手表应用开发 - UI

    > 复制代码 这样可以在保证方形表盘不受影响的情况下,圆形布局的内容,不会超过显示边界: 导航抽屉栏 为了节省宝贵的显示空间,通常手表应用是没有标题栏的,在使用 ViewPager 的时候,也没有 TabLayout...导航栏 WearableNavigationDrawerView 就是用来解决这个问题的,我们先看看它的效果: 从手表顶部向下滑,会出现一个导航栏,显示当前页面的图标和标题。...操作抽屉栏 当需要对当前页面进行一些操作的时候,但页面里又没有空间再放按钮了怎么办?既然可以从顶部下拉出导航栏,要不在底部上拉出一个操作栏?...自定义抽屉栏 导航栏 WearableNavigationDrawerView 和 操作栏 WearableActionDrawerView 用起来很简单,但是它们的样式是固定的,一个只能显示图标加标题...它包裹了抽屉栏的主视图 drawer_content 和关闭时露出部分的视图 peek_view。

    2.6K30

    Android开发之DrawerLayout实现抽屉效果

    使用注意点 1、DrawerLayout的第一个子元素必须是默认内容,即抽屉没有打开时显示的布局(如FrameLayout),后面紧跟的子元素是抽屉内容,即抽屉布局(如ListView)。...2、抽屉菜单的摆放和布局通过android:layout_gravity属性来控制,可选值为left、right或start、end。 3、抽屉菜单的宽度为 dp 单位而高度和父View一样。...--可以在程序中根据抽屉菜单 切换Fragment--> <FrameLayout android:id="@+id/fragment_layout" android...遇到的问题 1、在点击DrawerLayout中的空白处的时候,底部的content会获得事件。..." //导航的顶部视图 app:menu="@menu/menu_drawer_left" /> //导航的底部菜单 android.support.v4.widget.DrawerLayout

    7.2K60

    Android Design Support Library初探-更新中

    ) 官方视频简介 Navigation View 抽屉导航是app识别度与内部导航的关键,保持这里设计上的一致对app的可用性至关重要,尤其是对第一次使用的用户。...NavigationView 通过提供抽屉导航所需要的框架让实现更简单,同时它还能够直接通过菜单资源文件来直接生成导航元素。 ?...最简单的抽屉菜单就是几个可点击的菜单集合: android:checkableBehavior="single"> <item android:id="@+id/navigation_item...="@drawable/ic_android" android:title="@string/navigation_item_2"/> group> 被点击过的item会高亮显示在抽屉菜单中...效果和Code请移步 NavigationDrawer和NavigationView-Android M新控件 ---- 输入框控件的悬浮标签 在material design中,即使是简单的EditText

    97420

    Android Compose 新闻App(六)导航动画、WebView、浮动按钮、底部导航

    Android Compose 新闻App(六)导航动画、WebView、浮动按钮、底部导航 前言 正文 一、导航动画 ① 添加依赖 ② 使用 二、WebView使用 ① 导航传递URL参数 ② 配置WebView...① 导航传递URL参数   当前的App中有两个页面,疫情新闻页面和风险区详情页面,那么我们需要再写一个WebView的加载页面,可以让我们去加载Url。...着重讲一下WebView的使用,Compose中目前并没有WebView的直接使用,因为我们的WebView还是Android的原生WebView,没有经过Compose的封装,而如果要在Compose...然后是设置点击跳转的地方,如下图中所示: 这里的列表数据中的new中是有url的,因此我们几点将title和url传递过去,在EpidemicNewsListPage中添加如下图所示的代码...,然后在抽屉中增加疫情新闻的入口。

    4.9K20

    iOS 与 Android 的APP 设计差异

    Android设备底部有一个全局导航栏, 使用导航栏中的后退按钮是返回上一个界面或步骤的简便方法,它适用于所有Android应用。...在Android应用中被大家熟知的导航模式是抽屉和标签形式的组合。 抽屉导航其实是一个菜单,通过点击汉堡图标,然后从左侧或右侧滑出。...左侧就是抽屉导航;右侧是标签栏 在Material Design中还有一个组件叫做底部导航。这个组件对于安卓原生应用来说也非常重要。底部的菜单项很容易点击和操作。...但是安卓规范其实不建议同时使用底部导航和标签,因为它可能会在导航时引起混乱。 底部导航(Material Design) 在Apple的人机交互规范中,没有类似抽屉菜单的标准导航控件。...两者之间存在一些客观差异,例如Android中有全局导航栏而在iOS中却没有,以及两者在视觉上的差异。 Apple认为,常用导航入口应该尽可能的外置,一些用户不常用的功能才需要被放进汉堡菜单中。

    3.5K10

    导航组件概览 | MAD Skills

    导航组件介绍 导航组件包括了相关 API 和 Android Studio 中的设计工具,其大大简化了您应用中导航流程的创建和编辑。以前没有导航组件的时候,应用中的导航任务是由我们手动编码实现的。...导航模板 自 3.6 版本后,Android Studio 包含了一个非常有用的新功能,这就是将导航整合到创建新应用的模板中。...这一次,导航是由抽屉式导航栏中的菜单项触发的 当用户点击 DrawerLayout 中的菜单项时,应用会导航至和那些菜单项关联的目的地。...应用展示了 NavigationView (抽屉式导航栏) 覆盖在 activity 内容上方 接下来是 NavigationView,它是一个从左边划入的抽屉式导航栏。...大部分的导航相关的图像更新发生在 NavHostFragment 内部,但是系统中仍然存在其他需要更新且不在容器内的部件,比如我们上面看到的抽屉式导航栏,以及类似 tab bar 的元素 (该组件可以被用来展示当前目的地信息

    1.7K30

    安卓软件开发:使用Jetpack Compose实现DrawerMenuApp

    一、项目背景 在现代应用中,导航是关键元素,特别是使用侧边栏(Drawer Menu)切换不同页面的场景。...(3) 适用场景: • 比如一个购物应用中的导航栏,当用户点击左上角的菜单按钮时,抽屉滑出,显示购物车、收藏夹、账户信息等。 二....(2) 解释: • PermanentDrawerSheet 与前两种抽屉不同,它是固定在界面左侧的,用户无法将它关闭。它适合那些需要一直显示导航的场景,比如电子邮件客户端或者文件管理器。...• 这种 Drawer 不会挡住主屏幕内容,而是始终内容排显示 (3) 适用场景: • 比如在邮件应用中,你可以看到左边有固定的邮箱文件夹列表,右边是邮件内容。文件夹导航不会随着用户操作消失。...五、总结 通过这个DrawerMenuAppDemo,展示了如何在Jetpack Compose M3中实现一个带有抽屉菜单的安卓应用,添加更多的菜单项以及对应的页面功能。

    57250

    Android Q Beta 迎来第五版

    手势导航更新 此前在 I/O 开发者大会上,我们已经公布了团队在手势导航方面的一些工作动向。目前,我们正在和几大设备厂商展开密切合作,以确保用户和开发者均能享用到标准化的 Android 手势导航。...另外,我们还为包含导航抽屉的应用引入了 peek 手势: 用户轻压屏幕边缘来 “抓住” 抽屉,然后向内滑动,便可拉出抽屉页面。...从 Android Beta 6 开始,当用户使用自定义启动器时,系统会默认切换至三按钮导航。我们将在之后的更新中解决余下问题,确保所有用户都能正常使用手势导航。...更多内容,请阅读《非 SDK 接口限制在 Android Q 中的更新》。...我们建议所有应用支持以下特性: 夜间模式: 为了确保用户在启用全局夜间模式后能够享受到一致的体验,请您在应用中添加夜间主题,或开启 “强制变暗” (Force Dark) 功能 支持手势导航: 为用户提供边到边的操作体验

    1K20

    Android 10 终于来了!增加了不少新特性

    Android P 中已经有提供,但仅限于谷歌专用的应用程序。...Android 10 中,它已经内置到整个通知系统中,并且不仅提供对信息的回复建议,还可以获得建议的操作。...手势导航 引入手势导航后,应用程序不仅可以实现全屏幕的内容显示,还能最大限度地减少系统导航键的可见程度,这对于当下主流的全面屏手机尤为重要。...另外,团队还为包含导航抽屉(Navigation Drawer)的应用增加了一个名为 peek 的动作:用户轻压屏幕边缘然后再向内划动,便可拉出应用抽屉页面。...手势导航将变成Android 10的默认导航模式,从屏幕底部向上滑动可回到主界面,上滑并按住松开可切换后台App,从左侧或右侧边缘向相反方向滑动可返回上一桌面。

    1.3K40

    从零开始的Android:常见的UI设计模式

    幸运的是,Android用户熟悉一些常用的导航模式,以帮助您创建可以使用的出色应用程序。 标签 选项卡通常与列表和详细信息模式结合使用。...当您的应用程序中只有几个部分时,此模式很有用,因为它为用户提供了一种快速简便的方法来更改视图。 但是,如果要在选项卡中放入五个或更多项目,则应考虑将导航操作移到抽屉中。...根据Android的材料设计指南,选项卡也可以存在于屏幕底部,如Google+应用程序所示。 导航抽屉 导航抽屉是一个视图,可以从应用程序的侧面滑出,以便向用户显示选项列表。...由于此模式非常适合用于顶层导航,因此可以轻松地将其与tabs模式配对以在您的应用程序中创建复杂的导航方案。...工具列 您可能已经注意到,Android应用程序中的大多数页面在屏幕顶部都包含一个工具栏。

    2.7K20
    领券