Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Не работает onScroll во фрагменте / 10 сообщений из 10, страница 1 из 1
18.03.2015, 17:19
    #38908835
Витяй1991
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает onScroll во фрагменте
Здравствуйте!
Пишу галерею, пытаюсь подгружать новые картинки при прокручивании галереи, но не хочет вызываться метод onScroll
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
public class FotoActivity extends Activity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_filter);

        if (savedInstanceState == null) {
            getFragmentManager().beginTransaction()
                    .add(R.id.container, new FotoFragment())
                    .commit();
        }
    }


    public static class FotoFragment extends AbsListViewBaseFragment implements AbsListView.OnScrollListener {

        private static final String CLIENT_ID = "7f38ead5152e46f1a42284c2d84b0862";
        private static final String API_REQUEST = "cat";
        private static final String API_URL = "https://api.instagram.com/v1";

        static String downloadJsonUrl = API_URL + "/tags/" + API_REQUEST + "/media/recent?client_id=" + CLIENT_ID;

        private ImageAdapter picAdapter;

        ArrayList<String> picUrls = new ArrayList<String>();

        GetImages getInstagramImages;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            picAdapter = new ImageAdapter();

            getInstagramImages = new GetImages();
            getInstagramImages.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fr_image_grid, container, false);
            listView = (GridView) rootView.findViewById(R.id.grid);
            ((GridView) listView).setAdapter(picAdapter);
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                }
            });

            listView.setOnScrollListener(this);

            return rootView;
        }

        @Override
        public void onScrollStateChanged(AbsListView absListView, int i) {

        }

        @Override
        public void onScroll(AbsListView absListView, int firstVisible, int visibleCount, int totalCount) {
            boolean loadMore = firstVisible + visibleCount >= totalCount;

            if (loadMore == true && getInstagramImages.getStatus() == AsyncTask.Status.FINISHED) {
                getInstagramImages = new GetImages();
                getInstagramImages.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
            }
        }


        protected class GetImages extends AsyncTask<Void, Void, ArrayList> {

            @Override
            protected ArrayList doInBackground(Void... voids) {
                try {
                    picUrls = parseJson();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                return picUrls;
            }

            @Override
            protected void onPostExecute(ArrayList result) {
                super.onPostExecute(result);
                picAdapter.notifyDataSetChanged();
            }
        }


        private InputStream downloadJSON(String stringUrl) throws IOException {
            URL url = new URL(stringUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.setDoInput(true);
            connection.connect();
            return connection.getInputStream();
        }


        private ArrayList parseJson() throws IOException, JSONException {
            InputStream inputStream = downloadJSON(downloadJsonUrl);
            JSONObject jsonObject = (JSONObject) new JSONTokener(responseJSON).nextValue();
            JSONArray jsonArray = jsonObject.getJSONArray("data");
            for(int i = 0; i < jsonArray.length(); i ++){
                JSONObject imageJsonObject = jsonArray.getJSONObject(i).getJSONObject("images").getJSONObject("standard_resolution");
                picUrls.add(imageJsonObject.getString("url"));
            }
            downloadJsonUrl = jsonObject.getJSONObject("pagination").getString("next_url");

            return picUrls;
        }

}



Почему он не работает? Он срабатывает только один раз при загрузке фрагмента, когда список не прокручивается
...
Рейтинг: 0 / 0
18.03.2015, 18:56
    #38908955
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает onScroll во фрагменте
не страдай херней друже. ключевые слова recyclerview, two-way view, picasso. когда этого счастья не было, gridview + picasso. ну на крайняк можешь сам картинки грузить, но самому какой-то onscroll во фрагменте обрабатывать, это отвал башки.
...
Рейтинг: 0 / 0
18.03.2015, 20:35
    #38909047
Витяй1991
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает onScroll во фрагменте
chpashaне страдай херней друже. ключевые слова recyclerview, two-way view, picasso. когда этого счастья не было, gridview + picasso. ну на крайняк можешь сам картинки грузить, но самому какой-то onscroll во фрагменте обрабатывать, это отвал башки.
не страдаю, получаю фотки из инстаграма, а их api только первые 20 возвращает и чтобы получить еще 20, нужно сделать еще запрос, а запрос логично сделать когда пользователь докручивает фрагмент до конца
...
Рейтинг: 0 / 0
19.03.2015, 09:22
    #38909351
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает onScroll во фрагменте
Витяй1991не страдаю, получаю фотки из инстаграма, а их api только первые 20 возвращает и чтобы получить еще 20, нужно сделать еще запрос, а запрос логично сделать когда пользователь докручивает фрагмент до конца

и что, с recyclerview + gridlayout этого уже нельзя сделать ?
...
Рейтинг: 0 / 0
19.03.2015, 16:18
    #38910120
Витяй1991
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает onScroll во фрагменте
ДжибсВитяй1991не страдаю, получаю фотки из инстаграма, а их api только первые 20 возвращает и чтобы получить еще 20, нужно сделать еще запрос, а запрос логично сделать когда пользователь докручивает фрагмент до конца

и что, с recyclerview + gridlayout этого уже нельзя сделать ?
я использую gridview и universal image loader, изображения подгружаются по мере прокрутки, но у меня всего 20 изображений и больше 20-ти загрузиться не могут, т.к. в списке только 20 ссылок, а нужно загрузить еще 20 и чтобы понять что их нужно загружать, мне как раз и нужно обработать scroll listener, тогда в список добавится еще 20 ссылок и изображения будут грузится дальше
...
Рейтинг: 0 / 0
19.03.2015, 17:01
    #38910224
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает onScroll во фрагменте
Витяй1991
уже третий пост, но нифига не понятно. сделаю предположение: тебе заранее неизвестно кол-во картинок так? и когда ты доходишь до конца списка ты проверяешь, есть ли еще, и если да, добавляешь их к текущим. так?
...
Рейтинг: 0 / 0
20.03.2015, 01:11
    #38910539
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает onScroll во фрагменте
Витяй1991я использую gridview и universal image loader, изображения подгружаются по мере прокрутки, но у меня всего 20 изображений и больше 20-ти загрузиться не могут, т.к. в списке только 20 ссылок, а нужно загрузить еще 20 и чтобы понять что их нужно загружать, мне как раз и нужно обработать scroll listener, тогда в список добавится еще 20 ссылок и изображения будут грузится дальше

и что ?
...
Рейтинг: 0 / 0
23.03.2015, 12:49
    #38913201
Витяй1991
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает onScroll во фрагменте
chpashaВитяй1991
уже третий пост, но нифига не понятно. сделаю предположение: тебе заранее неизвестно кол-во картинок так? и когда ты доходишь до конца списка ты проверяешь, есть ли еще, и если да, добавляешь их к текущим. так?
да! но я уже разобрался со всем, код рабочий, а не работала прокрутка по другой причине
...
Рейтинг: 0 / 0
23.03.2015, 12:50
    #38913206
Витяй1991
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает onScroll во фрагменте
ДжибсВитяй1991я использую gridview и universal image loader, изображения подгружаются по мере прокрутки, но у меня всего 20 изображений и больше 20-ти загрузиться не могут, т.к. в списке только 20 ссылок, а нужно загрузить еще 20 и чтобы понять что их нужно загружать, мне как раз и нужно обработать scroll listener, тогда в список добавится еще 20 ссылок и изображения будут грузится дальше

и что ?
в onScroll нужно обработать дальнейшую загрузку картинок
...
Рейтинг: 0 / 0
23.03.2015, 15:47
    #38913645
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает onScroll во фрагменте
Витяй1991Джибспропущено...


и что ?
в onScroll нужно обработать дальнейшую загрузку картинок

ну та для этого просто уже готовые есть механизмы/виджеты.

зачем изобретать велосипед
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Не работает onScroll во фрагменте / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]