草庐IT

android - 单击文本字段时防止表单向上滚动

coder 2024-01-13 原文

我有一个简单的身份验证表单,其中包含两个文本字段和一个登录按钮(布局:xbox) 当我编辑第一个文本字段时,此表单完全适合键盘和状态栏,但当我切换到第二个文本字段时,表单会向上滚动一点。

问题:有谁知道如何防止滚动发生?

[编辑]代码

app.views.UserLogin = function (config) {
    Ext.apply(this, config);

    this.loginField = new Ext.form.Text({
        cls: 'auth-login',
        width:"100%",
        allowBlank: false,
        placeHolder:'Identifiant',
        border:'0 0 1 0',
    });

    this.passwordField = new Ext.form.Password({
        cls: 'auth-password',
        width:"100%",
        allowBlank: false,
        placeHolder:'Mot de passe',
        border:'0',
    });

    this.loginBtn = new Ext.Button({
        width:"200px",
        text: "Connect",
        handler: this.onLoginBtnFn,
        scope: this,
        cls:'auth-button',
    });

    this.authFieldSet = new Ext.form.FieldSet({
        width:"90%",
        cls:'auth-fieldset',
        items:[this.loginField,this.passwordField]
    });

    //constructor
    app.views.UserLogin.superclass.constructor.call(this, {
        //dockedItems: [this.toolbar],
        fullscreen: true,
        cls:'auth',
        layout: 'vbox',
        items: [
            this.authFieldSet,
            this.loginBtn
        ]
    });
};

谢谢

最佳答案

你能给我们更多信息吗? ScrollView 中的表单是否向上移动?可能设置 scrolling = NO;也许一些代码会有所帮助。

请注意,我在谈论 iOS 开发,我刚刚发布了您没有指定您是否在 objective-c 中工作。

让我稍微支持一下我的回答,这样更有意义。 View Controller 应该使用这些委托(delegate),您可能已经这样做了。

使用文本字段委托(delegate)允许访问 - (void)textFieldDidBeginEditing:(UITextField *)sender 和 - (void)textFieldDidEndEditing:(UITextField *)textField 方法。当文本字段开始编辑时,您可以设置 scrollingEnabled = NO,当文本字段结束编辑时,您可以设置 scrollingEnabled = YES。它看起来像这样:

-(void)textFieldDidBeginEditing:(UITextField *)sender
{
self.currentTextField = sender;
self.scrollView.scrollingEnabled = NO;
}

- (void)textFieldDidEndEditing:(UITextField *)textField
{
self.currentTextField = nil;
self.scrollView.scrollingEnabled = YES;
}

另一种选择是添加一个观察者,如果您使用 TextViews 而不是 TextFields(或两者的混合),这将很有用。

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:self.view.window]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:self.view.window]; 
}

- (void)viewWillDisappear:(BOOL)animated
{
[_currentTextField resignFirstResponder];
[super viewWillDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil]; 
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; 
}

你用这个技术做同样的事情,在 keyboardWillShow 方法中停止滚动,然后在 keyboardWillHide 方法中再次启动它。

希望我至少能帮上一点忙。

关于android - 单击文本字段时防止表单向上滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9344435/

有关android - 单击文本字段时防止表单向上滚动的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby-on-rails - Rails 编辑表单不显示嵌套项 - 2

    我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib

  3. ruby-on-rails - 如何验证非模型(甚至非对象)字段 - 2

    我有一个表单,其中有很多字段取自数组(而不是模型或对象)。我如何验证这些字段的存在?solve_problem_pathdo|f|%>... 最佳答案 创建一个简单的类来包装请求参数并使用ActiveModel::Validations。#definedsomewhere,atthesimplest:require'ostruct'classSolvetrue#youcouldevencheckthesolutionwithavalidatorvalidatedoerrors.add(:base,"WRONG!!!")unlesss

  4. ruby-on-rails - form_for 中不在模型中的自定义字段 - 2

    我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢

  5. Ruby Readline 在向上箭头上使控制台崩溃 - 2

    当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby​​安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少

  6. ruby - 如何在 Rails 4 中使用表单对象之前的验证回调? - 2

    我有一个服务模型/表及其注册表。在表单中,我几乎拥有服务的所有字段,但我想在验证服务对象之前自动设置其中一些值。示例:--服务Controller#创建Action:defcreate@service=Service.new@service_form=ServiceFormObject.new(@service)@service_form.validate(params[:service_form_object])and@service_form.saverespond_with(@service_form,location:admin_services_path)end在验证@ser

  7. ruby-on-rails - 在 Rails 和 ActiveRecord 中查询时忽略某些字段 - 2

    我知道我可以指定某些字段来使用pluck查询数据库。ids=Item.where('due_at但是我想知道,是否有一种方法可以指定我想避免从数据库查询的某些字段。某种反拔?posts=Post.where(published:true).do_not_lookup(:enormous_field) 最佳答案 Model#attribute_names应该返回列/属性数组。您可以排除其中一些并传递给pluck或select方法。像这样:posts=Post.where(published:true).select(Post.attr

  8. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  9. ruby-on-rails - Sphinx - 何时对字段使用 'has' 和 'indexes' - 2

    我几天前在我的ruby​​onrails2.3.2上安装了Sphinx和Thinking-Sphinx,基本搜索效果很好。这意味着,没有任何条件。现在,我想用一些条件过滤搜索。我有公告模型,索引如下所示:define_indexdoindexestitle,:as=>:title,:sortable=>trueindexesdescription,:as=>:description,:sortable=>trueend也许我错了,但我注意到只有当我将:sortable=>true语法添加到这些属性时,我才能将它们用作搜索条件。否则它找不到任何东西。现在,我还在使用acts_as_tag

  10. Ruby - 如何处理子类意外覆盖父类(super class)私有(private)字段的问题? - 2

    假设您编写了一个类Sup,我决定将其扩展为SubSup。我不仅需要了解你发布的接口(interface),还需要了解你的私有(private)字段。见证这次失败:classSupdefinitialize@privateField="fromsup"enddefgetXreturn@privateFieldendendclassSub问题是,解决这个问题的正确方法是什么?看起来子类应该能够使用它想要的任何字段而不会弄乱父类(superclass)。编辑:equivalentexampleinJava返回"fromSup",这也是它应该产生的答案。 最佳答案

随机推荐