Android 以编程方式滚动编辑文本
我正在写一个简单的凯撒加密活动。屏幕上有两个编辑文本,一个明文,一个加密。这里有一个加密的EditText的例子-cleartext是类似的Android 以编程方式滚动编辑文本,android,android-widget,android-edittext,Android,Android Widget,Android Edittext,我正在写一个简单的凯撒加密活动。屏幕上有两个编辑文本,一个明文,一个加密。这里有一个加密的EditText的例子-cleartext是类似的 <EditText android:layout_below="@id/Caesar_Label_CryptText" android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/Caesar_Te
<EditText
android:layout_below="@id/Caesar_Label_CryptText"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/Caesar_Text_CryptText"
android:hint="Enter crypted text"
android:maxLines="2"
android:lines="2"
android:minLines="2"
android:inputType="text|textMultiLine|textVisiblePassword"
android:scrollbars="vertical"
android:gravity="top" />
现在,当输入明文时,我有一个运行的TextChangedListener,它通过编程加密并填充加密编辑文本。到目前为止,一切顺利
当输入的明文变得很长时,明文编辑文本会随着我的输入滚动,但加密编辑文本会停留在文本的顶部。我真的希望crypto EditText滚动,以便它始终显示其内容的底线
如何做到这一点,最好是通过TextWatcher的onTextChanged()方法实现的?基类android.view.view有getScrollX()、getScrollY()和scrollTo()方法,虽然我没有尝试过,但它们可能会有所帮助
,int)好的,找到了。它是光标(在EditText和TextView上称为选择) 我就是这样让它工作的:
ivClear // assigned the EditText that has the input
ivCrypt // assigned the target EditText, that I want to scroll
aText // the input from ivClear, crypted
然后使用:
ivCrypt.setText(aText); // assign the Text
ivCrypt.setSelection(ivClear.getSelectionStart()); // scroll
呸,最后:)总是低估了斯潘能的力量;) 有趣的问题。看起来这应该是可能的,但我翻遍了文档,什么也找不到。我试过了。我记录cleartext EditText的getScrollY()值。输入文本时,此值会增加。然后我在crypto EditText中使用相同的值scrollToY()作为开始。但第二版文本不会滚动。我调试了scrollTo(),但在下次调用scrollTo()时,视图中最初更改的mScrollY变量被重置为0。我目前怀疑光标位置是罪魁祸首。调查一下。