当前位置: 首页 > 知识库问答 >
问题:

如何在添加更多文本行时使TextView自动滚动?

龚盛
2023-03-14

我有一个这样的文本视图:

<TextView
    android:layout_width="fill_parent"
    android:layout_height="140.7dp"
    android:id="@+id/terminalOutput"
    android:layout_marginBottom="0.0dp"
    android:scrollbars="vertical"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:maxLines="8" />

我将其用作一种运行日志,显示给用户,以便他们可以监控大约需要3分钟的任务进度。然而,一旦我超过8行,文本就会离开屏幕。这对用户来说是不直观的,因为他们无法知道它离开了屏幕,除了通过尝试向下滚动手动轮询。

我怎样才能使每次我在这个文本视图中添加一些文本时,都能将其向下滚动到尽可能低的位置?

另外,这是在Xamarin Android中,但我不认为它是相关的。它和Java之间很容易翻译

共有3个答案

乐正玺
2023-03-14

有同样的问题。试着从这个和类似的讨论中做出几个决定,什么都不起作用。解决方法如下:

edtConsoleText.setSelection(edtConsoleText.getText().length());

在每个. append()之后。

岳京
2023-03-14

根据这里的答案,在Android中使TextView可滚动

实际上,您不需要使用滚动视图。

只需设置

android:maxLines=“AN_INTEGER”

android:布局xml文件中TextView的滚动条=“垂直”属性。

然后使用:

你的TextView.set运动方法(新ScrollingMovementmethod());

在您的代码中。

那就行了。。

葛成双
2023-03-14

从您的代码中,必须执行两个步骤:

虽然您在Xamarin Android中编写代码,但正如在xxxA中的Javactivity.java终端输出调用必须是这样的

TextView outputText = (TextView) findViewById(R.id.terminalOutput);
outputText.setMovementMethod(new ScrollingMovementMethod());

通过参数ScrollingMovementMethod()的方法setMovementMethod()就是一个噱头。

在布局中,如Java-Android也activity_xxx.xmlTextView声明,如上所述,必须添加此

android:gravity="bottom"

当您在outputText中添加新行时,如下所示:

outputText.append("\n"+"New text line.");

它会自动滚动到最后一行,这些都是你需要的魔法。

 类似资料:
  • 我正在我的聊天屏幕上创建一个类似whatsapp的聊天应用程序,我有一个edittext,用户可以在其中输入他的消息。我想将其高度扩展到最多4行,然后如果文本超过第5行,编辑文本必须向下滚动显示新行。有时它可以工作,但有时编辑文本无法向下滚动。 我已经搜索了很多,并检查了这些属性 但还是不走运我想可能有些渲染问题

  • 大家早上好。我从标题中知道它是一切都混淆了,所以我会试着解释得更好。我需要为一个医疗项目创建一个计算糖化血红蛋白的应用程序。我有3个编辑文本,我在其中输入医学测试的值。三者中的每一个都因另一个而改变。举个例子:如果我一个有42,另一个是5.99%。诸如此类。我试图让它们动态地变化:在我写作的过程中保持不变。我尝试使用OnCliclListener,但是我必须写完整的值。 我不知道我解释得好不好让你

  • 问题内容: 我的问题在这里有点袖手旁观,所以我会尽力解释这一点。 我有一个文本区域,具有的CSS 。我试图防止它在调整大小的同时产生滚动条。此textarea与外部脚本的控制台同步,意味着它会更新。但是,默认情况下,除非突出显示文本,否则它将停留在顶部,然后拖动到元素的底部。当然,这是向下滚动的唯一方法,而不是使用箭头键。 以编程方式,在更新时是否有任何方法可以将文本区域保持在底部?使其具有自动滚

  • 我使用Soap用户界面来测试我的网络服务。每次我想执行我的测试请求时,我都需要更新定义。我知道有可能添加Groovy脚本来让WSDL自动更新。但是我不知道我应该添加这个脚本来使它工作。有人能描述一下我每次执行请求时需要做的使这个脚本运行的步骤吗?

  • 如何在文本运行时添加文本分隔符或转到下一行/行?我试着只做

  • 问题内容: 我的内部具有以下样式: 一旦向表中添加了足够的数据,这将显示一个垂直滚动条。但是,添加新数据后,我希望该元素自动滚动到底部。 我可以使用哪些JavaScript代码执行此操作?我愿意在必要时使用JQuery中的选项,但希望使用JavaScript解决方案。 问题答案: 如果您不知道何时将数据添加到,则可以设置一个间隔,每隔几秒钟将元素的scrollTop更新为其scrollHeight