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

如何在向EditText中添加行时动态更改我的ScrollView?

在向EditText中动态添加行时,可以通过以下步骤来实现动态更改ScrollView的内容:

  1. 首先,创建一个包含EditText和ScrollView的布局文件。可以使用LinearLayout或RelativeLayout等布局容器来组织它们的位置。
  2. 在Activity或Fragment中,找到EditText和ScrollView的实例,并为EditText设置一个文本变化监听器。
  3. 在文本变化监听器的回调方法中,获取EditText的文本内容,并根据需要进行处理。例如,可以根据换行符来判断是否需要添加新的行。
  4. 如果需要添加新的行,可以通过编程方式创建一个新的EditText实例,并将其添加到布局中。同时,将新的EditText实例添加到一个列表中,以便后续对其进行管理。
  5. 在添加新的行后,可以调用ScrollView的滚动方法,将焦点滚动到最新添加的行。可以使用scrollView.scrollTo(0, editText.getBottom())来实现滚动。

以下是一个示例代码,演示了如何在向EditText中添加行时动态更改ScrollView:

代码语言:txt
复制
public class MainActivity extends AppCompatActivity {
    private LinearLayout layout;
    private ScrollView scrollView;
    private List<EditText> editTextList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        layout = findViewById(R.id.layout);
        scrollView = findViewById(R.id.scrollView);
        editTextList = new ArrayList<>();

        EditText editText = findViewById(R.id.editText);
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }

            @Override
            public void afterTextChanged(Editable s) {
                String text = s.toString();
                if (text.endsWith("\n")) {
                    addNewLine();
                }
            }
        });
    }

    private void addNewLine() {
        EditText newEditText = new EditText(this);
        newEditText.setLayoutParams(new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.WRAP_CONTENT));
        layout.addView(newEditText);
        editTextList.add(newEditText);

        scrollView.post(new Runnable() {
            @Override
            public void run() {
                scrollView.scrollTo(0, newEditText.getBottom());
            }
        });
    }
}

在这个示例中,我们使用LinearLayout作为布局容器,将EditText和ScrollView嵌套在其中。当EditText的文本发生变化时,如果最后一个字符是换行符,就调用addNewLine()方法来添加新的行。

注意:这个示例只是一个简单的演示,实际应用中可能需要更复杂的逻辑和界面设计。另外,根据具体需求,可能还需要处理EditText的输入限制、滚动位置的调整等其他细节。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iothub
  • 移动推送服务(信鸽):https://cloud.tencent.com/product/tpns
  • 对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯区块链服务(TBC):https://cloud.tencent.com/product/tbc
  • 腾讯云游戏引擎(GSE):https://cloud.tencent.com/product/gse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android富文本开发

何在ViewGroup添加view,删除view时给相应view和受影响其他view添加动画,不太容易做。...当前编辑器已经添加了多个输入文本EditText,现在问题在于需要记录当前编辑EditText,在应用样式时候定位到输入控件,在编辑器添加一个变量lastFocusEdit。...为什么要添加插入图片过渡动画 当一个ViewGroup添加控件或者移除控件;这种场景虽然能够实现效果,并没有一点过度效果,直来直去添加或者移除,显得有点生硬。...如何运用到插入或者删除图片场景 一个ViewGroup添加控件或者移除控件,这两种效果过程是应对应于控件显示、控件添加时其他控件位置移动、控件消失、控件移除时其他控件位置移动等四种动画效果...是开源动力,谢谢!

8.4K20

Android 动态添加view或item并获取数据实例

最近在做一项目,项目中用到了一个功能,要求是动态Item,而且是多个情况下,不过仔细分析了下,都大同小异,做起来也很简单,在这里只抽取出来做了一demo,也只做了一个动态添加item,同时可以获取所有添加和编辑...我们先来分析一下这个demo: 两个TextView和EditText,一个Button,一个星级评价RatingBar控件,布局完事… activity_dynamic布局,有可能会添加多个,所以外面用...ScrollView,因为我们是垂直方向添加,所以使用LinearLayout做容器 <?...(hotelEvaluateView); sortHotelViewItem(); } //else { // sortHotelViewItem(); //} } //获取所有动态添加Item,找到控件...以上这篇Android 动态添加view或item并获取数据实例就是小编分享给大家全部内容了,希望能给大家一个参考。

96041

Android实现音乐播放器歌词显示效果

这两天有个任务,说是要写一个QQ音乐播放器歌词那种效果,毕竟刚学自定义View,没有什么思路,然后就Google.写了一个歌词效果,效果图在后面,下面是整理代码。...也不多说,直接上代码,代码中有注释。...一.自定义LycicView extends ScrollView 里面包括一个空白布局,高度是LycicView一半,再是一个布局存放歌词,最后是一个空白布局高度是LycicView一半。...这里动态第二个布局里面添加了显示歌词TextView,并利用ViewTreeObserver得到每个textview高度,方便知道每个textview歌词所要滑动到高度。...interface OnLyricScrollChangeListener{ void onLyricScrollChange(int index,int oldindex); } } 二..MainActivity布局

2.7K10

Material Design 进阶之二-使用TextInputLayout登陆界面

---- 验证输入 使用维基百科建议 有关电子邮件有效性指南编写了以下正则表达式。 /^[a-zA-Z0-9#_~!$&'()*+,;=:....---- 检索数据 正如我所说,TextInputLayout 只是一个包装,但不像  LinearLayout 并且  ScrollView,你可以使用特定方法获得它子元素  getEditText...它还将整个EditText小部件颜色更改为红色。 setErrorEnabled 启用错误功能。这直接影响布局大小,增加较低填充以为错误标签腾出空间。...在设置错误消息之前启用此功能setError 意味着在显示错误时此布局不会更改大小。您应该结合这两种方法进行一些测试,以便您实际看到 在说什么。...每个小部件颜色都直接从style.xml文件中指定主题颜色绘制 。只需打开它并将colorAccent项目添加到活动主题即可更改表单颜色方案。

1.3K20

Android版学生管理系统

用户可以输入姓名、性别、年龄三个字段,通过点击添加学生按钮,将学生信息展示到开始为空ScrollView控件ScrollView控件只能包裹一个控件,这里包裹是LinearLayout。...点击保存数据按钮将数据通过XmlSerializer对象将数据保存到sd卡,当点击恢复数据按钮时将sd卡文件数据读取出来回显到ScrollView。...activity实现文件,这里直接将代码贴出来,因为注释很清楚: package cn.yzx.studentmanageros; import java.io.File; import java.io.FileInputStream...= readStudentList(); // 把取出回来数据, 一条一条添加到学生列表 for (Student stu : readStudentList) { addToStudentList...serializer.endDocument(); return true; } catch(Exception e) { e.printStackTrace(); } return false; } /** * 把给定学生添加到学生列表

83210

黑科技:使用AI和机器学习将Android项目秒变IOS项目

目前支持Android项目中资产目录文件和UI布局转换,以及部分外部库转换。有了这个神器,以后一个人就可以轻松搞定两个平台了,真是爽歪歪啊。。。。根本不需要学习iOS了。。。...已支持功能: Android资产目录 (:jpg,png,.9图等) => "Assets.xcassets" mipmap目录图片资源 => “.appiconset” Color形式...image TextView屏幕截图: ? image 使用普通键盘EditText屏幕截图: ? image 带电话拨号键盘EditText屏幕截图: ?...针对.9.png图片文件:在catalog为asset添加了切片(slicing )信息。 Vector图片形式xml被转换成Storyboard上能够使用.pdf文件。...向量图像xml也被转换成Swift代码,并在VectorStore.swift为每个vector文件添加一个静态方法。

1.4K00

【Android TV 开发】焦点处理 ( 父容器与子组件焦点获取关系处理 | 不同电视设备上兼容问题 | 触摸获取焦点 | 按键获取焦点 )

---- 在布局文件 , 父容器节点中使用 android:descendantFocusability 属性 , 用于设置 父容器 与 子组件 之间 焦点获取先后顺序 ; <ScrollView...---- 在开发时遇到这样一种情况 , 布局样式是 ScrollView 嵌入一个 ConstraintLayout 布局 , 在 ConstraintLayout 布局设置了很多需要获取焦点子组件...; 运行正常情况 : 在 Google 提供模拟器上运行时 , 正常运行 , ScrollView 子组件可以正常获取焦点 ; 运行失败情况 : 但是在真实国产电视盒子 , ScrollView..., 将需要获取焦点组件都添加 android:focusable=“true” 属性 , 这样就解决了上述问题 ; 由此可见 , 相同代码 , 在不同型号 , 版本 , 厂家 电视设备上 , 焦点获取..., 移动 , 表现是不一样 , 因此这里就涉及到了焦点兼容问题 ; 本次在 康佳 电视盒子 , ScrollView 会阻断子组件焦点获取 , 但是在其它界面 , 没有添加 android:focusable

3K40

Android实现输入法弹出时把布局顶上去和登录按钮顶上去解决方法

背景:在写登录界面时,老板就觉得在输入密码时候谈出来输入法软键盘把登录按钮遮挡住了(入下图所示,不爽),连输入框都被挡了一半,于是不满意了,要叫我改,于是看QQ登录效果,就去研究了一下,弹出输入法整个布局上来了...看了很多博客和问答,很多人都说直接在在AndroidManifest.xml给这个Activity设置 <activity android:windowSoftInputMode=”stateVisible...--这个其实是放布局中间控件,随便写,放任何控件都可以-- android:layout_width="200dp" android:layout_height...2,最后再提供一个思路,这个思路来自于“卷皮”,卷皮登录效果,他设计思路是,在点击EditText输入框时候,第一个猜测是:得到了EditText输入焦点,或者是:猜测是监听到键盘弹出焦点之后...动态处理sroll向上滚动问题,logo动态缩小即可解决 总结 以上所述是小编给大家介绍Android实现输入法弹出时把布局顶上去和登录按钮顶上去解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言

3.6K20

直播卖货系统源码,如何展示html格式商品详情

在开发iOS版直播卖货系统源码过程,如何在html上展示商品详情,下面小编将从WKWebView入手,来介绍下实现过程。...:@“description"]); //这里更改一下html格式,让其符合手机端展示,如果服务端返回就是手机端展示样式,这就可以不用更改 直接用就可以了 NSString * htmlStyle...stringByAppendingString:description]; [_webView loadHTMLString:description baseURL:nil]; 3、在WKWebView加载完成代理方法更改...]);//将WKWebView高度设置为内容高度 //更改背景scrollview滑动范围  _backScrollView.contentSize = CGSizeMake(0, _webView.bottom...]; } }];  } imageArray = [NSMutableArray arrayWithArray:arrImgURL]; return arrImgURL; } 4、在WKWebView代理方法拦截图片添加点击方法

1.1K30

2.ui

, 这里 们指 定"center" , 效果 等 同于"center_vertical|center_horizontal",表示文字在垂直和水平方向都居中对齐。...通过 android:maxLines指定 EditText最大行数为两行,这样当输入内容超过两行时,文本就会向上滚动,而 EditText则不会再继续拉伸 如何才能让进度条在数据加载完成时消失呢?...1、ScrollView和HorizontalScrollView是为控件或者布局添加滚动条 2、上述两个控件只能有一个孩子,但是它并不是传统意义上容器,但是可以不跟布局,LinearLayout写它里面...ll.addView(tv); }//页面并没有实现滑动,所以在布局文件中外层添加一个进行滑动。...android:attr/progressBarStyleHorizontal"android:max="100"/> 指定成水平进度条后,还可以通过 android:max属性给进度条设置一个最大值,然在代码动态更改进度条进度

1.5K90

5种方法完美解决android软键盘挡住输入框方法详解

例如:Activityxml布局只有一个LinearLayout包含若干EditText,在ActivityAndroidMainfest.xml设置android:windowSoftInputMode...、只使用ScrollView 在相应界面的xml布局,最外层添加一个ScrollView,不在AndroidMainfest.xml设置任何android:windowSoftInputMode属性...2、ScrollView+adjustPan 我们再在该类AndroidMainfest.xml设置windowSoftInputMode属性为adjustPan, <activity android...3、ScrollView+adjustResize 我们前面说过adjustResize使用必须界面布局高度是可变最外层套个ScrollView或是界面可收缩,才起作用。...一、实现步骤: 1、把SoftHideKeyBoardUtil类复制到项目中; 2、在需要使用ActivityonCreate方法添加:SoftHideKeyBoardUtil.assistActivity

19.8K31

Android之 学习路线

11.多线程原理:如何在程序创建多线程(Thread、Runnable),线程安全问题,线程同步,线程之间通讯、死锁。  12.Socket网络编程。...2、Android初级控件使用: TextView控件使用 Button控件使用方法 EditText控件使用方法 ImageView使用方法 RadioButton使用方法 Checkbox...使用方法 Gallary使用方法 ScrollView使用方法 4、对话框与菜单使用: Dialog基本概念 AlertDialog使用方法 DatePickerDialog使用方法...: 自定义ListView实现方法 可折叠ListView使用方法 自定义Adapter实现方法 自定义View实现方法 动态控件布局上实现方法 第四阶段:android网络编程与数据存储...1、基于Android平台HTTP通讯: Http协议回顾 Apache Commons 工具包介绍 使用Get方法服务器提交数据方法 解析服务器响应数据方法 使用POST方法服务器提交数据实现方法

62010

【随笔】android开发学习路线

11.多线程原理:如何在程序创建多线程(Thread、Runnable),线程安全问题,线程同步,线程之间通讯、死锁。  12.Socket网络编程。...2、Android初级控件使用: TextView控件使用 Button控件使用方法 EditText控件使用方法 ImageView使用方法 RadioButton使用方法 Checkbox...使用方法 Gallary使用方法 ScrollView使用方法 4、对话框与菜单使用: Dialog基本概念 AlertDialog使用方法 DatePickerDialog使用方法...自定义ListView实现方法 可折叠ListView使用方法 自定义Adapter实现方法 自定义View实现方法 动态控件布局上实现方法 第四阶段:android网络编程与数据存储...1、基于Android平台HTTP通讯: Http协议回顾 Apache Commons 工具包介绍 使用Get方法服务器提交数据方法 解析服务器响应数据方法 使用POST方法服务器提交数据实现方法

74740

Android 通过 xml 和 Java 两种方式调整 EditText 光标样式

和尚有个小需求是根据主题配色更改 EditText 输入框光标的颜色,网上查了一些资料,大部分都是直接用 xml 方式在做调整,但是和尚需要是在 Java 代码动态调整光标颜色。...虽然是一个很简单东西,但是和尚在测试还是遇到了不少小问题,现在简单整理一下,希望对于遇到相同问题朋友有所帮助。...---- 和尚测试步骤如下: 设置一个默认 EditText,默认光标颜色为程序对应 colorPrimary 颜色值; ?...设置一个 EditText,通过 Java 方式调整光标颜色,此效果为和尚期待效果,将上个步骤 Tips 方式调整即可; ?...添加一个测试 EditText,Java 动态修改光标宽度,仅需调整 size 属性即可; ?

3.3K41

TextInputLayout-Android M新控件

在写这边博客时候,support已经更新到23.2.0了,不过还是用个人常用23.1.1吧。虽然这个控件是在22.2.0推出,记得所有的Support library版本保持一致。...在你build.gradle文件添加如下依赖: compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support...跟ScrollView一样,TextInputLayout只接受一个子元素。子元素需要是一个EditText元素。...一个单一EditText 在输入文字时候会隐藏hint,而被包含在TextInputLayoutEditText则会让hint变成一个在EditText上方浮动标签。...其中一种就是写一个自定义方法然后在xml通过onClick属性指定,喜欢setOnClickListener方式,但这只是个人喜好。

73620

Android开发(5) 代码方式生成表单

前言 我们以前几个例子中都是直接使用设计器来制作表单视图,实际在开发中经常会遇到使用代码来动态添加控件到视图中。 ? 一般步骤是: 1.生成一个控件,比如new Button。...比如:view.AddView(...). 4.在追加父控件内时,可以指定布局方式。 在动态添加完毕后,我们还需要能够获得对这些动态添加控件值。...比如我添加一个文本框,还想获得用户在这个文本框里填入值。androidview控件里,都有个属性Tag,我们可以很方便使用这个属性来存放我们特殊标记,用这个特殊标记来标记我们控件。...也就是说,我们放置了一个静态表格,然后动态创建这个表格里行。 LayoutParams 是布局参数意思。在将创建好子控件添加到它父容器控件时,可以同时指定一个布局参数。...这个布局参数指示了这个子控件如何在父容器控件里呈现。

1.5K00

Android应用界面开发——简单控件和Activity间传递数据

Activity间传递数据 Activity之间传递数据有两种方法: startActivity(intent):打开另一个Activity,同时开启界面Activity传递数据。...startActivityForResult(intent):打开另一个Activit,同时开启Activity传递数据,并回传数据。...:加载网页 ListView:显示列表 GridView:显示表格式列表 ScrollView:内容可滚动视图 SufaceView:非常重要绘图容器 针对比较常用控件一和Activity之间传递数据写了一个小...:类名或接口名提示 Ctrl + P:方法参数提示 Ctrl + Shift + Alt + N:查找类方法或变量 Ctrl + H:显示类结构图 Ctrl + D:复制行 Ctrl + Q:显示注释文档...+ F12:可以显示当前文件结构 Ctrl + Alt + C:将变量更改为常量 Ctrl + Alt + F:提取全局变量

1.8K30
领券