Я пишу простой caesar-encryption-activity. Два EditTexts на экране, одном открытом тексте, одном crypted. Вот пример для crypted EditText - открытый текст, каждый подобен.
<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.Пока все хорошо.
Когда вводимый открытый текст становится действительно длинным, прокрутки открытого-текста-EditText с моим приписывать, но crypto-EditText остается наверху текста. Я действительно хотел бы, чтобы crypto-EditText прокрутил так, чтобы он всегда показывал нижнюю строку своего содержания.
Как это может быть сделано, предпочтительно от onTextChanged () - Метод TextWatcher?
Хорошо, нашел. Это был курсор (называвшийся Selection в EditText и TextViews).
Вот как я заставил это работать:
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
Уф, наконец :) Всегда недооценивал силу Spannable;)
Базовый класс android.view.View имеет методы getScrollX (), getScrollY () и scrollTo (), которые могут быть полезны, хотя я их не пробовал.
http://developer.android.com/reference/android/view/View.html#scrollTo (int , int)