Я успешно создал список (LinearLayout), который содержит несколько динамических элементов/строк. Он заполнен содержимым, полученным webservice. Один из элементов в строке - это HorizontalScrollView, который содержит переменную величину полей EditText.HorizontalScrollView с прокруткой EditText при появлении клавиатуры
Это означает, что все edittexts из всех строк (включая заголовок) могут прокручиваться с помощью этого горизонтальногоScrollView.
Scrollmanager будет следить за тем, чтобы все horizontalScrollviews перемещались одновременно. Таким образом, это в основном прокручиваемый столбец внутри списка.
Проблема, которую я испытываю, заключается в следующем.
Когда я выберем вид EditText, он отобразит клавиатуру, и именно этого я и хочу. Но scrollManager запускается, поэтому он будет прокручивать все горизонтальные просмотры до конца. Вместо того, чтобы держать фокусный текст в экране, он выйдет из виду.
Мои ScrollManager OnScrollChanged
@Override
public void onScrollChanged(View sender, int l, int t, int oldl, int oldt) {
// avoid notifications while scroll bars are being synchronized
if (isSyncing)
return;
isSyncing = true;
// remember scroll type
if (l != oldl)
scrollType = SCROLL_HORIZONTAL;
else if (t != oldt)
scrollType = SCROLL_VERTICAL;
else {
// not sure why this should happen
isSyncing = false;
return;
}
// update clients
for (ScrollNotifier client : clients) {
View view = (View) client;
if (view == sender)
continue; // don't update sender
// scroll relevant views only
// TODO Add support for horizontal ListViews - currently weird things happen when ListView is being scrolled horizontally
if ((scrollType == SCROLL_HORIZONTAL && view instanceof HorizontalScrollView)
|| (scrollType == SCROLL_VERTICAL && view instanceof ScrollView)
|| (scrollType == SCROLL_VERTICAL && view instanceof ListView)) {
view.scrollTo(l, t);
}
}
isSyncing = false;
}
Я конец я хочу клавиатуры появляться и Scrollview, чтобы иметь возможность прокрутки, но я хочу, чтобы предотвратить горизонтальное событие прокрутки, когда появляется клавиатура.
Безразлично» t, похоже, работает на меня :-( – stackr
@stackr Все еще прокрутка – airowe
@stackr Что вы подразумеваете под «не работает»? – airowe