Scroll в ListView
Scroll в ListView
Возник вопрос, мне необходимо отслеживать, на какую величину в dp, прокручивается ListView, чтобы на это соответствующим образом реагировать.
Но никак не могу выяснить, как это можно отслеживать. Кто-нибудь знает ?
Но никак не могу выяснить, как это можно отслеживать. Кто-нибудь знает ?
Re: Scroll в ListView
Используй событие
@Override
public void onScroll(AbsListView absListView, int firstVisible, int visibleCount, int totalCount) {
//firstvisible is your first visible item in the list
}
@Override
public void onScroll(AbsListView absListView, int firstVisible, int visibleCount, int totalCount) {
//firstvisible is your first visible item in the list
}
Re: Scroll в ListView
и как в дипах можно отмерить?)
Re: Scroll в ListView
У ScrollView есть метод onScrollChanged в который приходят координаты по Х и У смены позиции, узнаём разницу это будет пиксели, ну а пиксели преобразовать в дипы не составит труда.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Scroll в ListView
высоту в дип для каждого элемента Вам известно, умножаем номер элемента на высоту.Dangreon писал(а):и как в дипах можно отмерить?)
Re: Scroll в ListView
Мне нужно прокручивать и измерять ListView! А не ScrollView. Так как же это можно сделать?
Re: Scroll в ListView
можно прочитать документацию )Dangreon писал(а):Мне нужно прокручивать и измерять ListView! А не ScrollView. Так как же это можно сделать?
OnScrollListener
onScrollChanged
onScrollChanged наследуется от вью.
Re: Scroll в ListView
Ок! И как вызвать этот метод onScrollChanged для ListView ?
Re: Scroll в ListView
он не вызывается, он обрабатывается
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Scroll в ListView
Ваш ответ не по существу.
Re: Scroll в ListView
У ScrollView есть метод onScrollChanged в который приходят координаты по Х и У смены позиции, узнаём разницу это будет пиксели, ну а пиксели преобразовать в дипы не составит труда.
Как добраться до этого метода?
Как добраться до этого метода?
Re: Scroll в ListView
http://stackoverflow.com/questions/3948 ... ns-android
вот тут пример обертки
вот тут пример обертки
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Scroll в ListView
я дал ответ, что тебе в нём не понятно?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Scroll в ListView
Я сделал как подсказал Foenix, унаследовался от ListView создав свой MyListView, перегрузил метод onScrollChanged, добавил метод установки слушателя, реализовал интерфейс в активити. Проблема в том, когда я ставлю в этот метод
логирование (Log.d(вывести параметры которые приходят в метод)) то в лог ничего не идет. Выходит когда я скролю пальцем свой список, этот метод не вызывается. Хм.
логирование (Log.d(вывести параметры которые приходят в метод)) то в лог ничего не идет. Выходит когда я скролю пальцем свой список, этот метод не вызывается. Хм.
Re: Scroll в ListView
Так ничего не понять, нужно коды выкладывать, логи.. может кто-то увидит в чем ошибка..
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Scroll в ListView
я тоже самое предлагал, может не доходчиво объяснилЯ сделал как подсказала Foenix, унаследовался от ListView создав свой MyListView, перегрузил метод onScrollChanged
+Так ничего не понять, нужно коды выкладывать, логи.. может кто-то увидит в чем ошибка..
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Scroll в ListView
Код: Выделить всё
public class MyScrollListView extends ListView {
private ScrollListViewListener scrollListViewListener;
public MyScrollListView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyScrollListView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public MyScrollListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public void setScrollListViewListener(ScrollListViewListener scrollListViewListener) {
this.scrollListViewListener = scrollListViewListener;
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
// TODO Auto-generated method stub
super.onScrollChanged(l, t, oldl, oldt);
//Log.d("myLogs", "l = " + String.valueOf(l) + ",t = " + String.valueOf(t) + ",oldl = " + String.valueOf(oldl) + ",oldt = " + String.valueOf(oldt));
if(scrollListViewListener != null) {
scrollListViewListener.onScrollChanged(this, l, t, oldl, oldt);
}
}
}
Код: Выделить всё
public interface ScrollListViewListener {
void onScrollChanged(MyScrollListView scrollView, int x, int y, int oldx, int oldy);
}
Код: Выделить всё
public class MyActivity extends Activity implements ScrollListViewListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.reklama);
String[] data = new String[] {"один", "два", "три"/*, "четыре", "пять", "6", "7", "8",
"9", "10", "11", "12","13", "14", "15", "16"*/};
MyScrollListView list = (MyScrollListView) findViewById(R.id.listComment);
list.setScrollListViewListener(this);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),
R.layout.my_simple_list, R.id.list_content, data);
list.setAdapter(adapter);
}
@Override
public void onScrollChanged(MyScrollListView scrollView, int x, int y, int oldx, int oldy) {
Log.d("myLogs", "Работает");
}
}
Re: Scroll в ListView
Все решилось гораздо проще...
Код: Выделить всё
if (list.getChildAt(position - firstVisibleItem) != null){
top = list.getChildAt(position - firstVisibleItem).getTop();