现在,Ionic 处理表单输入的方式可以更好。 Ionic 1 在键盘处理、内容滚动等方面有很棒的表单输入默认值。 Ionic 2 需要保持一致,更重要的是,在所有平台(iOS、Android、Windows)上一致地为表单输入正常工作。
有关应在设备上运行的代码示例,请参阅此 repo: https :
[x] 6. 支持自动更正、自动完成和自动大写及其组合。
[x] 1. 选择输入时,应滚动整个表单内容,以便在显示键盘后可以看到所选项目。
_请注意,此问题与幻灯片组件中的表单或输入无关。 那将是要执行的单独一致性检查。_
哪个离子版本? 2.x
从终端/cmd 提示符运行ionic info
:(在下面粘贴输出)
科尔多瓦 CLI:6.1.1
离子框架版本:2.0.0-beta.4-201604170622
离子 CLI 版本:2.0.0-beta.24
离子应用程序库版本:2.0.0-beta.14
操作系统:
节点版本:v5.7.0
@dylanvdmerwe这太棒了,谢谢你把它放在一起! 至于使用下一个和上一个按钮来上下切换输入,这应该可以工作,但最近可能出现问题。
也适用于自动完成和自动更正,默认情况下它们被禁用,除非它们被特别添加到元素中: https :
您认为默认情况下也应该禁用自动大写吗?
@adamdbradley我已经更新了上面的项目。 突出的事情是确定可重现的问题。
我们在 Android 问题 #1 上在哪里? 没有它就完全搞砸了我的应用程序。
+1 Android 问题 #1 :)
本期所列项目有任何变动吗?
@dylanvdmerwe在下一个测试版发布 (beta8) 后,我们将专注于解决此类问题。 不便之处请见谅
+1 Android 问题 #1 :)
+1 在 Android 问题上:
. 选择输入时,应滚动整个表单内容,以便在显示键盘后可以看到所选项目。
这阻止了我从 ionic1 完全移植到 ionic 2 。
祝一切顺利!
这阻止了我从 ionic1 完全移植到 ionic 2 。
同样在这里。
+1 Android 问题 #1
请尽快解决这个问题! 我们为此启动了一个新应用程序,但不希望此错误成为交易破坏者并让我们回到 ionic 1!
@adamdbradley , @jgw96现在有一些解决方法吗?
你能提供更新吗? 很难演示这个主要功能不起作用......
谢谢!
我也很感激这方面的更新。 我们的ion-input
元素在聚焦时不会滚动到视图中。 我们尝试切换到普通的input
元素,但这会导致各种其他问题。 谢谢!
大家好! 我可以向您保证,我们正在努力解决此类问题。 大家主要是在ios还是android上看到这个问题? 还是两者都发生?
发生在android上,不确定ios。 现在,只有当我开始输入时,UI 才会向上滚动以显示输入。 理想情况下,它应该在聚焦和键盘弹出后立即发生。
你好,
我在设备上的 iOS 上看到了更多问题(尚未在 Android 上检查):
感谢您在 Ionic 上所做的出色工作,期待解决问题!
Android 中的键盘和离子输入也有同样的问题。 所有带有表单的应用程序的非常重要的问题!
没有关于这个关键问题的更新?
关于这个问题的任何更新?
希望在即将到来的 RC 中看到这一点。
对此进行更新。 #5 对于 iOS 我无法重现。 这对我来说很好用,有人可以确认吗?
现在看#1。
我面临同样的问题。 是否有任何更新? .
在 iOS #1 在大屏幕 (iPad) 上效果不佳。 输入滚动到最顶部,而让它更靠近键盘会很整洁。
你好,
花了一些时间来调查这个问题,因为它发生在我们这边的几个设备上。
安卓:
IOS:
经过一番搜索,我们发现scoolView.scrollTo 使用了scrollTop HTML 属性。
此属性受理论值限制:scrollHeight - clientHeight。
我们刚刚在 scroll-view.js (node_modules/ionic-angular/util/) 中添加了以下几行:
console.log(fromY + ' =>' + y);
console.log('最大理论值:' + (this._el.scrollHeight - this._el.clientHeight));
问题似乎很明显。
由于某些原因,当您将字段聚焦在Android上时,键盘是在向上滚动之前生成的,因此最大理论值优于我们要向上滚动的值。 在 iOS 上,第一次,情况并非如此。 所以最大向上滚动值是一。
轮到你了 ;)
@EDumdum如何复制此问题? 当我在输入中获得焦点并且键盘已经向上并切换到下一个输入时,下一个输入会滚动到标题下方。 它不是为你做的吗?
当键盘已经打开(页面向上滚动太多)时,从一种离子输入切换到另一种离子输入时仍然存在一些错误。
嗨@adamdbradley
下面的步骤创建示例。 屏幕截图来自模拟器,但我们在设备上重现了相同的行为。 表单在这里添加了一些颜色(蓝色 = 聚焦字段,红色 = 其他字段)。
重现步骤
创建示例的步骤
constructor(config: Config, platform: Platform) {
config.set('scrollAssist', true);
...
}
<ion-header>
<ion-navbar>
<ion-title>Home</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<div class='takePlace'>Bla bla</div>
<form novalidate [formGroup]="form">
<ion-item>
<ion-input type="tel" pattern="[0-9]{3}" formControlName="dummyField"></ion-input>
</ion-item>
<ion-item>
<ion-input formControlName="dummyField2"></ion-input>
</ion-item>
</form>
</ion-content>
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
public form: FormGroup;
constructor(private formBuilder: FormBuilder) {
this.form = this.formBuilder.group({
dummyField: ['', [Validators.required, Validators.pattern('[0-9]{3}')]],
dummyField2: ['', [Validators.required, Validators.pattern('[0-9]{3}')]]
});
}
ngOnInit() {
}
}
.takePlace {
height: 300px;
border: 1px solid red;
}
每晚构建都会正确移动它们的输入字段,但是当您按下后退按钮并且键盘向下滑动时,某些地方的输入会保持原位(向上滑动),它们应该到达原始位置。
其次,我无法在模拟器上打字,因为它迫使我在屏幕键盘上打字,而 emu 没有显示。
@kodeine
非常感谢您的反馈! 我会将所有这些注释用于各种测试场景。 我会尽快尝试每晚出去,以便每个人都可以测试一下,谢谢!
@亚当布拉德利
另一种情况,我在一个有输入且键盘打开的页面上,我单击后退按钮并注意到选项卡也在键盘顶部。 所以也许我们需要将标签保留在键盘后面。
相关: https :
它在夜间效果更好!
不过,我发现最近的变化引入了一个错误。 如果输入 A 具有焦点并且您点击输入 B,则键盘会隐藏并且所有输入都不会具有焦点。
此外,当聚焦输入时,它“跳”到位置,而不是像在 Safari 中聚焦输入时那样平滑的滚动动画,这是有意的吗?
编辑:这是使用 WKWebView。 没有测试过 UIWebView。
我真的很想知道是否会支持输入的“下一步”按钮。
用户(android,不确定ios)很难不按下提交/确定按钮,认为它会转到下一个输入而不是完成表单操作。
@biesbjerg你能描述更多如何重现这些问题吗? 当你说它跳到位时,标题会被滚动吗? 哪种类型的输入? 输入是在应用程序的顶部还是底部附近? 你能提供一个问题的视频吗? 谢谢
@adamdbradley这段视频显示了“跳到位置而不是平滑滚动”,还显示了我注意到的一个错误,即如果您专注于输入并按下后退硬件按钮,它不会向后滚动内容。
编辑:更改了 gif 大小。
@adamdbradley这是输入焦点问题,键盘消失而不是聚焦点击的输入。
这是在 Android 上,在焦点上,我的表单突然跳转,第一个焦点输入在屏幕上不可见:
你好@biesbjerg ! 我们最近发布了另一个夜间版,其中包含更多针对输入滚动的修复,您介意尝试一下吗? 谢谢!
@jgw96嗨! 我测试了 2.0.0-rc.3-201611302233 并且没有任何改变,所以 gif 录音仍然是有效的问题。
感谢您测试@biesbjerg ! 你能发布一个 repo 或创建一个我可以用来重现这个问题的 plunkr 吗?
@jgw96给你! https://github.com/biesbjerg/6228-ionic-keyboard-issues
脚步:
git clone https://github.com/biesbjerg/6228-ionic-keyboard-issues.git
cd 6228-ionic-keyboard-issues
npm install
mkdir www
(由于需要存在www
或插件安装失败的cordova / ionic错误而需要)ionic state reset
iOS 视频中显示的问题是 UIWebView 和 WKWebView 的问题。
Android 问题与我的内容使用 flexbox 垂直居中有关,但即使如此,它也应该表现正常。
你好@biesbjerg ! 感谢您的回购。 今天滚动发生了更多变化,可能会解决这个问题,我将在测试后用我的发现更新这篇文章。
嗨@jgw96! 凉爽的! :-)
Touching an area that is not an input dismisses the keyboard.
我看到这部分(以及其他部分)旁边有一个支票; 这是否意味着它将出现在下一个版本中? 这对于在键盘顶部的<ion-footer>
中具有发送按钮的聊天应用程序来说非常棒! 然后在单击发送按钮后键盘不会总是关闭
嗨,大家好。 我也有同样的问题。 我观察到一些事情。
当未选择输入时,我们会遇到这种情况。
但是当我们选择它时,我们有这个
结果我用 !important 做了那糟糕的一步
它适用于我作为临时解决方案。
所以......当你有一些使用position:relative 的东西时,事情会变得非常混乱
在这个例子中,logo 是具有相对位置的元素,如果你按下第一个输入,它会变成这样:
但是按下第二个输入也会推动徽标:
@jgw96关于这个问题和
我也真的很希望有关于这个问题的任何消息,我的客户正在施加很大的压力🙉
好消息是输入在最新的夜生活中表现得更好。 我想很多人,包括我这个问题的原始记录者,都会对修复感到满意。
@yannbf公平地说,Ionic 2 仍然是预发布软件。
我理解这一点,并认为这非常合理。 我只是希望有一个更新来传递它。 我非常感谢 ionic 团队所做的一切。
无论如何,如何在每晚测试我当前的应用程序?
@yannbf npm install ionic-angular<strong i="6">@nightly</strong> --save
并且不要忘记将您的 package.json 更新为 angular 2.2.1
夜间效果更好! 谢谢你们
大家好! 感谢您使用 Ionic! @biesbjerg和@yannbf ,你们介意更新到rc4并进行测试吗? 该版本有大量的输入滚动修复,希望能解决你们的问题。 谢谢!
@jgw96是的,已经做到了。 好多了! 期待最终版😄
@jgw96更新后事情变得更好了,但带有position:absolute
或position:fixed
元素仍然受到影响。 我能够绕过那个带有徽标的页面,我之前发送了一个打印件(使用另一种方法,删除绝对位置),但是在下一页中,我必须在页面底部有“协议条款”,我仍然面临这个问题:
这是代码:
<div class="agreement-text">
<p>paragraph's content..</p>
</div>
和 CSS:
.agreement-text {
position: fixed;
padding: 10px;
margin-top: 40px;
bottom: 0;
text-align: center;
left: 0;
right: 0;
margin: 0 auto;
a {
color: rgb(250, 231, 124);
}
}
就我而言,更新到 RC5 后,Android 上的跳转输入问题仍然存在。 我刚刚使用空白模板开始了一个新项目,并将文档中的离子输入组件复制到离子内容中,行为如下。
正如您所看到的,除了第一个组件之外,每个组件都会跳转。
作为记录,这是ionic info
命令的输出。
科尔多瓦 CLI:6.4.0
离子框架版本:2.0.0-rc.5
离子 CLI 版本:2.2.1
离子应用程序库版本:2.2.0
离子应用脚本版本:1.0.0
ios-deploy 版本:未安装
ios-sim 版本:未安装
操作系统:Windows 10
节点版本:v6.9.2
Xcode 版本:未安装
@almr193这种行为看起来是正确的。 当键盘在移动设备上可见时,屏幕会滚动。 滚动确保突出显示的输入始终可见,并且不会被屏幕键盘覆盖。
@dylanvdmerwe感谢您的快速回复,我呈现的场景看起来是正确的,我知道当键盘在屏幕上显示时屏幕会滚动。 但是,我有另一个奇怪的场景,其中ion-list
的ion-input
启用了项目重新排序。 输入越界,用户无法看到正在写入的内容。
@almr193是的,不幸的是,这仍然是一个未解决的问题。
请参阅上面初始帖子的 Android 项目 1) 和 4)。
+1 仍未解决。 离子原生键盘中的任何方法似乎对 Android 都没有帮助
我在使用幻灯片 + 输入时遇到问题。 它通过不执行任何滚动显示出一种非常奇怪的行为。
+1
科尔多瓦 CLI:6.4.0
离子框架版本:2.0.0
离子 CLI 版本:2.1.18
离子应用程序库版本:2.1.9
离子应用脚本版本:1.0.0
ios-deploy 版本:未安装
ios-sim 版本:5.0.13
操作系统:macOS Sierra
节点版本:v6.9.4
Xcode 版本:Xcode 8.2.1 构建版本 8C1002
+1
这仍然是最新最好的cordova和ionic的问题。
有解决方案或解决方法吗?
- 更新 -
当您开始输入时,输入会滚动到视图中,但当键盘最初显示时,输入会被键盘遮挡。
——
Your system information:
Cordova CLI: 6.5.0
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
ios-deploy version: 1.9.1
ios-sim version: 5.0.13
OS: OS X El Capitan
Node Version: v6.1.0
Xcode version: Xcode 8.2.1 Build version 8C1002
初始画面
选择域输入元素后的屏幕
亲爱的离子团队( @manucorporat 、 @brandyscarney 、 @adamdbradley )
我知道您正在努力开发下一个版本,但这些键盘问题对于应用体验来说非常重要。 请考虑给他们一个高优先级,以及其他长期存在的问题,如虚拟滚动。
巨大的应用程序大小和缓慢的启动很糟糕,好吧,但是当应用程序安装并运行时,它应该在键盘处理等基本事情上提供适当的体验。
必须在这里插话,
这些似乎只是任其腐烂,而团队添加了公认的不错的功能,例如最近的拆分窗格。
问题是,如果核心功能仍然以某种明显的方式被破坏,那么添加新功能真的没有意义。 可以说在添加到框架之前先把基本的东西弄对更重要。
热爱所有的辛勤工作,但这里的优先级似乎是错误的。
伙计们,确定优先级和修复问题的最佳方法是提供 _reproducible 代码_,Ionic 团队可以测试并找到问题。 屏幕截图和 gif 是史诗般的,但它们可以用来查看您的问题的代码是最好的。 #2cents
请注意,对于表单和输入,不要使用display: absolute
来定位事物。
我也有这些问题。 这不是一个小问题。 这怎么会成为一个问题,现在似乎没有修复?
聚焦输入字段时遇到问题,每次单击该字段时屏幕都会上下移动。 有人能帮助我吗?
离子框架版本:2.3.0
离子 CLI 版本:2.2.2
离子应用程序库版本:2.2.1
离子应用脚本版本:1.1.4
ios-部署版本:1.9.1
ios-sim 版本:5.0.4
操作系统:macOS Sierra
节点版本:v7.2.0
Xcode 版本:Xcode 8.2.1 构建版本 8C1002
@pedrodurek如果您提供一个 plunker 以便 ionic 人员可以复制,那就太好了。
我找到了解决文本跳跃问题的临时解决方法。 这不是修复,而是在实施更好的修复之前本质上是一种黑客攻击。
首先,确保你有这些设置:
this.keyboard.disableScroll(false);
this.keyboard.hideKeyboardAccessoryBar(true);
接下来,在您的 app.module.ts 中,找到以下内容:
IonicModule.forRoot(YourApp)
并使它像这样:
IonicModule.forRoot(YourApp, {
scrollAssist: false,
autoFocusAssist: false
}),
这解决了我遇到的任何跳跃问题,但不幸的是,它会在用户键入时将导航栏推离屏幕。 不过,这似乎是我注意到的唯一不良副作用。
@Tyler-Darby 感谢分享您的解决方案,这不是最好的解决方案,但它是一个合理的解决方案,并且对我有用。
我遇到了这个问题,它让我发疯,但我最终发现这是由于将transform: translate3d(0,0,0)
应用于元素以强制硬件加速引起的。 事实证明,当键盘出现时,会破坏输入焦点。
我相信这不是每个人的问题的原因,但希望它可以帮助某人。
我有多个平台,我正在修复它...
我放入 app.component.ts:
constructor(
...
public config: Config,
) {
// all platforms
this.config.set( 'scrollPadding', false )
this.config.set( 'scrollAssist', false )
this.config.set( 'autoFocusAssist', false )
// android
this.config.set( 'android', 'scrollAssist', true )
this.config.set( 'android', 'autoFocusAssist', 'delay' )
...
也许这对某人有帮助。
谢谢大家的提示;)
检查视频:
https://www.dropbox.com/s/6p49z0chle9g1b9/git-ios-input.mov?dl=0
环境信息:
全局包:
@ionic/cli-utils : 1.3.0
Cordova CLI : 7.0.1
Ionic CLI : 3.3.0
本地包:
@ionic/app-scripts : 1.3.7
@ionic/cli-plugin-cordova : 1.3.0
@ionic/cli-plugin-ionic-angular : 1.3.0
Cordova Platforms : ios 4.4.0
Ionic Framework : ionic-angular 3.3.0
系统:
Node : v7.10.0
OS : macOS Sierra
Xcode : Xcode 8.3.2 Build version 8E2002
ios-deploy : 1.9.0
ios-sim : 5.0.8
我用<input/>
作为<ion-input></ion-input>
试试吧。
嗨@maulikakapure ,
我正在为我的公司开始我的第一个 ionic 应用程序,我也遇到了键盘滚动/聚焦问题。 显然,您找到了已在视频中展示的解决方案。 能提供源代码吗? 我还没有找到要使用的解决方法、配置参数和 html 标签的正确组合。
谢谢
@Tyler-Darby 嘿,Tyler,我该把下面的代码放在哪里?
this.keyboard.disableScroll(false);
this.keyboard.hideKeyboardAccessoryBar(true);
要修复 Ionic 的默认关键字问题,只需将以下内容放入 app.module.ts 的导入中:
IonicModule.forRoot(MyApp, {
scrollAssist: false,
autoFocusAssist: false
})
这将立即解决键盘问题。
@aplimovil这解决了我的 android 应用程序上的问题! 为你这个好人喝彩!
如果将scrollAssist
和autoFocusAssist
设置为true
会使应用程序无法使用,那么有什么意义呢?
在任何情况下启用它们会带来一些好处吗?
aplimovil 的修复似乎解决了我遇到的所有问题!
所以,是的,我很想知道你为什么将其中任何一个设置为 true。
@JefferE这是因为 Ionic 的 scrollAssist 和 autoFocusAssist 功能在 iOS 中被破坏了(在 Android 中它们几乎可以正常工作,尽管至少对我来说这些增强功能几乎没有被注意到)并且似乎没有足够地注意到这里的所有问题报告,因此他们修复了它在即将发布的版本中。 希望他们有一天会注意到这个线程并在 iOS 上修复这些功能,或者在 iOS 中默认情况下有选择地关闭它们。
当网格中的 ion-textarea 时,keyboard.disablescroll(false) 不起作用?如何解决这个问题
这对我有用
imports: [
BrowserModule,
IonicModule.forRoot(MyApp, {
scrollPadding: false,
scrollAssist: true,
autoFocusAssist: false
}),
离子信息:
CLI Packages:
@ionic/cli-utils : 1.10.2
ionic (Ionic CLI) : 3.10.3
global packages:
Cordova CLI : 7.0.1
local packages:
@ionic/app-scripts : 2.1.4
Cordova Platforms : android 6.2.3
Ionic Framework : ionic-angular 3.6.1
System:
Android SDK Tools : 25.2.5
ios-deploy : 1.9.1
ios-sim : 5.0.8
Node : v6.11.3
npm : 3.10.10
OS : macOS Sierra
Xcode : Xcode 8.3.3 Build version 8E3004b
只是想让你们知道我在iOS上有一个类似的问题,即键盘在输入字段上滚动并且内容屏幕没有更新为键盘腾出空间。
我发现的重要一点是在使用插件时(如@ionic-native/keyboard)
并在键盘显示this.keyboard.onKeyboardShow().subscribe(()=>{ this.someFlag=true})
并使用界面中的标志进行更改时对您的界面进行操作。 它不会改变,您必须通过导入ChangeDetectorRef
并在subscribe
使用其detectChanges()
函数来自己触发角度变化检测。
我创建了这个 gitrepo来展示这个案例。 随意看看。 这让我大开眼界,因为我没有意识到在某些情况下您subscribe(()=>{})
对某事进行了更改,但不会显示在界面中。
今天变得更聪明了:)
最后一件事:祝大家周末愉快!
令我感到困惑的是,这个问题已经超过 1.5 年了,却没有采取任何行动。 这完全破坏了我的应用程序的流程。 它让它看起来有缺陷和质量很差,我们不得不通过黑客来让事情变得接近好看。 @mhartington内部有什么事情吗?
我与 Ionic 的@matthewkremer进行了电话交谈,作为现在使用 ionic 的 PRO 版本的后续行动,并强调这是一个主要问题。 他说他理解并将努力将其推向更高的优先级。
我也是。 这一点都不好看。。
大家好,这正成为我们的首要任务,请参阅今天早上@adamdbradley的推文: https : //twitter.com/adamdbradley/status/916295747968040960
预计未来几天/几周的更新
听起来不错,我希望我们能尽快恢复生活,而不会应用不必要的黑客攻击。
对于已经使用 WK 的人,我正在准备一个新的键盘插件: cordova-plugin-ionic-wkkeyboard
:
cordova plugin rm ionic-keyboard-plugin --save
cordova plugin add cordova-plugin-ionic-wkkeyboard --save
抄送@hitendramalviya @ionut-movila @mmolhoek @Tyler-Darby @yingbaby @maulikakapure @aplimovil
这个新的 wkkeyboard 和使用 FormGroups 和 FormControls 禁用/启用 ion-textarea 有一个奇怪的问题。 重新启用完整表单后,离子文本区域保持禁用状态。 使用“旧”键盘时不会发生这种情况。
我今晚会创建一个问题:)。
// 编辑:
可能这是一个与其他事情有关的问题。 浏览器中的行为相同。
https://github.com/ionic-team/ionic/issues/13170
如果键盘根本不触发调整大小,更不用说滚动输入,我应该寻找什么?
看起来滚动问题应该已经解决了,但我仍然在 ios 上遇到问题,当输入位于屏幕中间时,当键盘向上时,输入不会滚动到。 当输入被点击或我使用键盘导航键时,这都是一个问题。 我错过了什么吗? 我已经尝试了这里介绍的一堆解决方案,但它们似乎不起作用。 (有关其他信息,我在浏览器中使用 Ionic 而不是本机应用程序)
哇 2018 年什么都没有。
他们给了我这个解决方案,但它并不完美
.滚动内容{
填充底部:0!重要;
}
大家好,我不小心发现默认版本有 _cordova-plugin-ionic-keyboard_。 当我用 _ionic-plugin-keyboard_ 替换它时,输入错误消失了。
所以我的解决方案是:
cordova 插件 rm 离子键盘
离子科尔多瓦插件添加离子插件键盘
npm install --save @ionic-native/keyboard
+1
仇杀,我试过了,但没有用!
你有标题工具栏这个烦人的错误吗?
2018 年 3 月 29 日星期四晚上 11:31,Emmanuel Fache通知@ github.com
写道:
仇杀,我试过了,但没有用!
—
您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/ionic-team/ionic/issues/6228#issuecomment-377362762 ,
或静音线程
https://github.com/notifications/unsubscribe-auth/AYPMdggjRqZBZ0wghtxFjVbPLViBkR8hks5tjUSQgaJpZM4IKhUp
.
如果您仍然遇到此问题,请尝试使用较新的离子键盘插件
ionic cordova plugin rm ionic-keyboard-plugin
ionic cordova plugin add cordova-plugin-ionic-keyboard
然后设置
<preference name="KeyboardResizeMode" value="ionic" />
在 config.xml
你好,
在我正在使用的应用程序中,一切正常。 但由于某种原因,我必须使用 html 表中的输入。 在这种情况下,每当我点击输入时,它都会重绘表格,并重置表格的滚动。
有人可以帮忙吗?
也看到了转换问题的发生。 这很烦人。
对于滚动 pb,我在这里写了一个 hack: https :
AbrahamLopez10 于 2017 年 8 月 1 日发表的这条评论对我来说非常
@ dylanvdmerwe , @jgw96 @mhartington @Tyler-Darby @manucorporat @adamdbradley
大家好,我刚刚创建了一个自定义指令来处理 Ionic 2 和 3 应用程序在 iOS 和 android 平台上的这个问题。 您能否检查一下这是否解决了与此滚动问题相关的所有问题。
我使用scroll-into-view-if-needed ponyfill来制作这个指令
安装运行命令npm install ion-input-scroll-into-view
ion-input-scroll-into-view 指令
第1步
将 ion-input-scroll-into-view 指令附加到 ion-input 或 ion-textarea ,如下所示。
<ion-input ion-input-scroll-into-view></ion-input>
<ion-textarea ion-input-scroll-into-view></ion-textarea>
第2步
您必须在父组件的 module.ts 中导入 IonInputScrollIntoViewModule,如下所示
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { ParentPage } from './parent';
import { IonInputScrollIntoViewModule } from 'ion-input-scroll-into-view';
@NgModule({
declarations: [
ParentPage
],
imports: [
IonicPageModule.forChild(ParentPage),
IonInputScrollIntoViewModule
],
})
export class ParentPageModule {}
npm 链接: https ://www.npmjs.com/package/ion-input-scroll-into-view
github 链接: https :
感谢您的问题! 我们已经将 Ionic 3 的源代码和问题移到了一个单独的存储库中。 我正在将此问题移至 Ionic 3 的存储库。请在那里跟踪此问题。
感谢您使用 Ionic!
问题移至: https :
最有用的评论
亲爱的离子团队( @manucorporat 、 @brandyscarney 、 @adamdbradley )
我知道您正在努力开发下一个版本,但这些键盘问题对于应用体验来说非常重要。 请考虑给他们一个高优先级,以及其他长期存在的问题,如虚拟滚动。
巨大的应用程序大小和缓慢的启动很糟糕,好吧,但是当应用程序安装并运行时,它应该在键盘处理等基本事情上提供适当的体验。