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

实现边到边的体验 | 让您的软键盘动起来 (一)

Android 11 中的新功能之一是可以让应用在对于屏幕上的软键盘打开和关闭的过程创建无缝过渡的动画效果,这一功能源自 Android 11 中对 WindowInsets API 的大量改进。...实现边到边跟软键盘有什么关系? 其实,实现边到边不单单只是在状态栏和导航栏之后渲染。应用本身需要开始负责处理那些跟应用重叠的系统 UI 的部分。 正如我们前面提到的,两个最直观的例子是状态栏和导航栏。...这些边衬区包括了状态栏、导航栏以及打开时的软键盘。...// 显示软键盘( IME ) controller.show(Type.ime()) // 隐藏软键盘 controller.hide(Type.ime()) 然而,这个控制器不单单能控制隐藏和显示软键盘...可如果我们想实现一个浅色的状态栏背景并且搭配深色的内容,像右边显示的一样,我们也可以使用 WindowInsetsController。

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

    Android 沉浸式解析和轮子使用

    用户可以通过在状态栏与导航栏原来区域的边缘向内滑动让系统栏重新显示。...提示气泡——第一次进入沉浸模式时,系统将会显示一个提示气泡,提示用户如何再让系统栏显示出来。...请注意,如果为了测试你想强制显示提示气泡,你可以先将应用设为沉浸模式,然后按下电源键进入锁屏模式,并在 5 秒中之后打开屏幕。 沉浸模式—— 这张图展示了隐藏了系统栏和其他UI控件的状态。...粘性标签——这就是你设置了 IMMERSIVE_STICKY 标签时的 UI 状态,用户会向内滑动以展示系统栏。半透明的系统栏会临时的进行显示,一段时间后自动隐藏。...2.5 在 PopupWindow 中实现沉浸式 重点是调用以下方法,但是此方法会导致有导航栏的手机底部布局会被导航栏覆盖,还有底部输入框无法根据软键盘弹出而弹出。

    3.2K10

    鸿蒙NEXT版仿微信聊天App的避让软键盘

    比如下面的聊天界面,正常在页面顶部显示聊天标题栏,在页面底部显示聊天交互控件(包括编辑框、按钮等等)。 此时点击页面底部的编辑框,输入法的软键盘会从屏幕下方弹出,然后把整个聊天界面顶了起来。...这个规则就是设置一个安全区域,在安全区域内部的组件都不受软键盘影响。...该操作对应调用expandSafeArea方法,当方法参数为SafeAreaType.KEYBOARD时,表示对软键盘而言属于安全区域。...那么可对页面窗口增加设置,让软键盘在弹出时只压缩包含layoutWeight属性的组件,不压缩正常高度的组件。...于是打开App工程的Ability代码,转到onWindowStageCreate方法内部,在加载成功后增加下面一行代码: windowStage.getMainWindowSync().getUIContext

    26710

    Android 软键盘的那些事

    这个属性能影响两件事情: 【一】当有焦点产生时,软键盘是隐藏还是显示 【二】是否减少活动主窗口大小以便腾出空间放软键盘 它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”...activity里的状态,无论是隐藏还是显示 【C】stateHidden:用户选择activity时,软键盘总是被隐藏 【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,...这个属性的设置将会影响两件事情: 1> 软键盘的状态——是否它是隐藏或显示——当活动(Activity)成为用户关注的焦点时。...2> 活动的主窗口调整——是否减少活动主窗口大小以便腾出空间放软键盘或是否当活动窗口的部分被软键盘覆盖时它的内容的当前焦点是可见的。..."stateAlwaysVisible" 当该Activity主窗口获取焦点时,软键盘总是显示的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。

    2K10

    鸿蒙开发:沉浸式效果实现

    、应用界面和导航条的突兀效果,更多的是提升用户体验,比如下面的效果,当页面中的标题栏颜色和状态栏不一样时,视觉上显然是很突兀的,大家可以纵观市场上的绝大部分主流应用,比如支付宝,微信,或者各个游戏,都会发现...安全区域实现沉浸式 安全区域是指页面的显示区域,也就是状态栏、导航栏区域之外的区域,没有特殊的情况,默认下开发者开发的界面都是在安全区域内,如下图,粉色的区域就是安全区域。...: Array): T; 两个参数,第一个参数types,类型是Array ,非必填,配置扩展安全区域的类型,当未添加metadata配置项时,页面不避让挖孔...KEYBOARD 软键盘区域。 SafeAreaEdge 扩展安全区域的方向 名称 描述 TOP 上方区域。 BOTTOM 下方区域。 START 前部区域。 END 尾部区域。...注意事项 在使用expandSafeArea属性时,有几点需要注意: 第一点,如果你的父容器是滚动容器,比如Scroll,所设置的expandSafeArea属性是没有效果的,这个千万要注意。

    18310

    AndroidMainifest标签说明2——<activity>

    它不会留在任务的活动堆栈,因此用户将无法返回。 android:parentActivityName 逻辑父类的名字。 系统读取这个属性,以确定哪些活动时应開始使用按下button在操作栏。...在动作条显示操作项,当约束的水平空间。而不是少数出如今屏幕上方操作栏中的行动项目。操作栏被分成顶部导航部分和操作项的底部栏。这保证了空间的合理量可供不仅为行动项目,同一时候也为在顶部导航和标题元素。...“stateUnchanged” 软键盘上一次保存在不论什么状态,是否可见或隐藏,当活动走到前台。 “stateHidden” 软键盘是隐藏的,当用户选择activity时。...“stateVisible” 可见的,当activity激活的时候 “stateAlwaysVisible” 总是可见的 “adjustUnspecified” 未指定活动的主窗体的大小是否为软键盘...“adjustResize” 活动的主窗体总是会去调整大小使软键盘在窗体中 “adjustPan” 活动的主窗体不是软键盘调整大小以腾出空间。

    1.5K00

    Android爬坑之旅:软键盘挡住输入框问题的终极解决方案

    最基本的情况,如图所示:在页面底部有一个EditText,如果不做任何处理,那么在软键盘弹出的时候,就有可能会挡住EditText。...adjustPan是把整个界面向上平移,使输入框露出,不会改变界面的布局; adjustResize则是重新计算弹出软键盘之后的界面大小,相当于是用更少的界面区域去显示内容,输入框一般自然也就在内了。...总之,基本上只要是App自己接管了状态栏的控制,就会产生这种问题。...3.界面变化之后,获取"可用高度" 当软键盘弹出了之后,接下来的事情是获取改变之后的界面的可用高度(可以被开发者用以显示内容的高度)。...因为能触发OnGlobalLayout事件的原因有很多,不止是软键盘的弹出变化,还包括各种子View的隐藏显示变化等,它们对界面高度的影响有限。

    4.9K20

    Visual Studio 2008 每日提示(十二)

    +选项+环境+常规,不选中“显示状态栏” 显示状态栏和不显示状态的图示 评论:我一般显示状态栏,有些编译信息比如是否编译成功都会显示,这样看起来比较方便。...评论:默认情况下,当打开同一个文件的时候,会自动激活已经打开的文档窗口。...在编辑中自动刷新当前文档 原文链接:How to automatically refresh an open document in the editor 操作步骤: 菜单:工具+选项+环境+文档,选中“当文档在该环境外改变时检测...#117、在vs里编辑只读文件 原文链接:How to edit a read-only file in VS 操作步骤: 菜单:工具+选项+环境+文档,选中“允许编辑只读文件,当试图保存时发出警告“...启动时”下拉框中“显示起始页”,然后在“起始页新闻频道”中输入rss源的地址。

    2K40

    实现边到边的体验 | 让您的软键盘动起来 (一)

    Android 11 中的新功能之一是可以让应用在对于屏幕上的软键盘打开和关闭的过程创建无缝过渡的动画效果,这一功能源自 Android 11 中对 WindowInsets API 的大量改进。...简单回顾一下,实现 "边到边" 会让您的应用渲染在系统状态栏的后面,如上图所示。 引用去年我自己的话: 实现从边到边的全面屏体验后,系统栏会覆盖在应用内容前方。...实现边到边跟软键盘有什么关系? 其实,实现边到边不单单只是在状态栏和导航栏之后渲染。应用本身需要开始负责处理那些跟应用重叠的系统 UI 的部分。 正如我们前面提到的,两个最直观的例子是状态栏和导航栏。...,视窗希望在极端的情况下该如何布局内容。...这些边衬区包括了状态栏、导航栏以及打开时的软键盘。

    1.5K20

    Android富文本开发

    14.点击图片可以查看大图 编辑状态时,由于图片有空能比较大,在显示在富文本的时候,会裁剪局中显示,也就是图片会显示不全。...stateAlwaysHidden-总是隐藏状态:当设置该状态时,软键盘总是被隐藏,和stateHidden不同的是,当我们跳转到下个界面,如果下个页面的软键盘是显示的,而我们再次回来的时候,软键盘就会隐藏起来...stateVisible-可见状态:当设置为这个状态时,软键盘总是可见的,即使在界面上没有输入框的情况下也可以强制弹出来出来。...stateAlwaysVisible-总是显示状态:当设置为这个状态时,软键盘总是可见的,和stateVisible不同的是,当我们跳转到下个界面,如果下个页面软键盘是隐藏的,而我们再次回来的时候,软键盘就会显示出来...,会将布局顶起(保证输入框不被遮挡),不压缩,而且可以软键盘不消失的情况下,手动滑出被遮挡的布局; adjustPan-默认模式:软键盘弹出,软键盘会遮挡屏幕下半部分布局,当输入框在屏幕下方布局,软键盘弹起

    8.5K20

    android基础

    android.intent.category.LAUNCHER 决定应用程序是否显示在程序列表里 android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题...这个属性能影响两件事情: 【一】当有焦点产生时,软键盘是隐藏还是显示 【二】是否减少活动主窗口大小以便腾出空间放软键盘 它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”...activity里的状态,无论是隐藏还是显示 【C】stateHidden:用户选择activity时,软键盘总是被隐藏 【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,...软键盘也总是被隐藏的 【E】stateVisible:软键盘通常是可见的 【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态 【G】adjustUnspecified...当angle=0时,渐变色是从左向右。 然后逆时针方向转,当angle=90时为从下往上。 corners 圆角 gradient – 对应颜色渐变。

    77920

    Android开发笔记(三十六)展示类控件

    在代码中实现时,可调用如下方法: setCompoundDrawables : 设置文本周围的图形。该方法有四个参数,分别表示左边、上方、右边、下方的图形。...给编辑框注册一个TextWatcher监听器(addTextChangedListener方法),当检测到文本发生变化并找到回车换行符时,触发光标跳转操作; 2、保持当前控件不换行,依旧单行显示。...EditText还有一个需要特殊处理的地方,就是自动关闭软键盘。一般我们希望点击其它控件时,原输入框的软键盘就要自动消失,可惜Android不是这样处理。...) getSystemService(Context.INPUT_METHOD_SERVICE); //软键盘如果已经打开则关闭之 if (imm.isActive() == true)...另外注意centerInside,当图片尺寸大于视图时,centerInside等同于fitCenter;当图片尺寸小于视图时,centerInside等同于center。

    1.5K30

    掌握 SwiftUI 的 Safe Area

    如果一个视图可以完整地放置在父视图的安全区域中,该视图的 safeAreaInsets 为 0。当视图尚未在屏幕上可见时,该视图的 safeAreaInset 也为 0 。...•keyboard与显示在视图内容上的任何软键盘的当前范围相匹配的安全区域。...从 iOS 14 开始,SwiftUI 计算视图的安全区域时,将软键盘在屏幕上的覆盖区域(iPadOS 下,将软键盘缩小后键盘的覆盖区域将被忽略)也一并进行考虑。...首先,背景并没有充满全部屏幕,其次在软键盘弹出时,我们并不希望背景因为安全区域的变化而发生改变。...尽管使用 safeAreaInset 为列表在底部添加状态栏或自定义 TabBar 非常方便,但如果你的列表中使用了 TextField,情况将变得很麻烦。

    7.7K31

    Android开发常用的知识点

    stateUnchanged 当主窗口出现在前面时,软键盘被保持它上次是什么状态,无论上次是可见或隐藏。...stateAlwaysHidden 当该Activity主窗口获取焦点时,软键盘总是被隐藏的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。...stateVisible 当用户导航到Activity主窗口时,软键盘是可见的。不过当用户离开一个Activity而导致另一个被覆盖的Activity显示出来时,软键盘会使用默认的设置。...stateAlwaysVisible 当该Activity主窗口获取焦点时,软键盘总是显示的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。...如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。

    2.6K10

    鸿蒙开发:一文了解软键盘相关

    DevEco Studio:Build Version: 5.0.3.900 API:12 modelVersion:5.0.0 前段时间,简单写了备忘录小应用,有一个小功能,那就是,底部的一排样式编辑按钮,在键盘未弹出时...,就在页面底部展示,当键盘弹起时,就悬浮在软键盘之上,方便在内容编辑时进行样式修改,就如下图红框中的编辑按钮。...实现上面的效果,其实也很简单,无非就是监听软键盘的高度,根据软键盘的高度来动态设置底部组件的高度即可。...this.keyboardHeight = px2vp(data); }) }) } 上面的处理方式,有一点需要注意,如果当前页面非沉浸式,那么需要减去非安全区的高度,也就是状态栏和导航栏的高度...inputMethod.getController().stopInputSession() 二、主动获取焦点弹出软件盘 如果你想要一进入某一个页面,或者弹出弹窗时进行自动的弹出软件盘,可以给可输入组件

    9700

    最新iOS设计规范三|3大界面要素:栏(Bars)

    一、导航栏(Navigation Bars) 导航栏出现在页面的顶部,位于状态栏下方,可以给一系列层级页面进行导航。当点击进入新页面时,其导航栏的左侧会出现一个返回按钮,并带有前一页面的标题。...有时,导航栏的右侧也会有一个控件,如“编辑”或“完成”按钮,用于管理活动视图中的内容。在拆分视图中,导航栏可能会显示在拆分视图的单个窗格中。...当显示在导航栏中时,可以将搜索栏固定在导航栏中,以便始终可以调用。也可以将其折叠,当用户向上滑动时展开显示。 使用搜索栏而不是仅仅通过“搜索”文字来实现搜索。文字没有用户所期望的标准搜索栏外观。...考虑在搜索栏下方提供有用的快捷方式和其他内容。使用搜索栏下方的区域可帮助人们更快地获取内容。例如,Safari会在您点击搜索字段后立即显示您的书签。选择一个即可直接进入,而无需输入任何搜索词。...显示全屏媒体时,请考虑暂时隐藏状态栏。

    9.9K10
    领券