android listview: setOnScrollListener никогда не вызывался

#android #listview #android-listview

#Android #listview #android-listview

Вопрос:

У меня проблема в моем коде, setOnScrollListener, похоже, никогда не вызывается, потому что при прокрутке мой relativelayout не скрывается, и я не вижу журналы в logcat.

Вот мой код :

 list = (ListView)findViewById(R.id.accountview_listview);
            adapter = new Account_view_custom_adapter(Account_view_act.this, annoncesList);
            list.setAdapter(adapter);
            adapter.notifyDataSetChanged();
            registerForContextMenu(list);

            list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    list.showContextMenuForChild(view);   
                }
            });

            list.setOnScrollListener(new OnScrollListener() {

                int mPosition=0;
                int mOffset=0;
                RelativeLayout relative1 = (RelativeLayout) findViewById(R.id.relative1);

                @Override
                public void onScrollStateChanged(AbsListView view, int scrollState) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
                    // TODO Auto-generated method stub

                    int position = list.getFirstVisiblePosition();
                    View v = list.getChildAt(0);
                    int offset = (v == null) ? 0 : v.getTop();

                    if (mPosition < position || (mPosition == position amp;amp; mOffset < offset)){
                        // Scrolled up 
                        Log.d("INFO", "UP");
                        relative1.setVisibility(View.GONE);
                    } else {
                        // Scrolled down
                        Log.d("INFO", "DOWN");
                        relative1.setVisibility(View.VISIBLE);

                    }

                }
            });
 

Комментарии:

1. есть ли у вас какой-либо ScrollView или какой-либо макет, реализующий прокрутку, улавливающую ваш listview?

2. @PedroHawk Нет, ничего.

3. @PedroHawk та же проблема со мной .. когда я прокручиваю элементы listview, которые сначала не доступны для просмотра, при повторном нажатии это работает.мой listview внутри вложенного scrollview .. и я также использовал setListViewHeightBasedOnChildren …….. Помоги мне выбраться

4. Спасибо @PedroHawk, я решил это, удалил свой вложенный scrollview, и это сработало… спасибо за руководство 🙂