Действие при прокрутке scrollview
Есть действие, которое нужно выполнить при прокрутке scrollview. Как можно считать прокручивание? Не обязательно высоту, можно сам факт прокрутки.
Есть панель, которая должна отображаться при прокрутке и должна быть скрыта в начале. Для этого я использую следующий код
public class MainActivity extends AppCompatActivity {
GridLayout fab_panel;
ScrollView sview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (!sview.canScrollVertically(-1)) {
fab_panel.setVisibility(android.view.View.VISIBLE);
}
if (!sview.canScrollVertically(1)) {
fab_panel.setVisibility(android.view.View.INVISIBLE);
}
}
но получается так, что панель только остаётся скрытой и не появляется при достижении низа scrollview.
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Ну собственно вот например:
anyScrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
float dsy = getBaseContext().getResources().getDisplayMetrics().density;
@Override
public void onScrollChange(View view, int x, int y, int oldX, int oldY) {
float ydp = y / dsy;
Log.d("yo", "offset " + ydp);
}
});
для отлова факта достижения нижней границы экрана можно использовать такую конструкцию внутри listener:
if (!scrollView.canScrollVertically(1)) {
// bottom of scroll view
}
if (!scrollView.canScrollVertically(-1)) {
// top of scroll view
}
вот примеры есть