Форум программистов, компьютерный форум, киберфорум
Наши страницы

FloatingButton + RecyclerView+ RefreshLayout - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Кинуть событие http://www.cyberforum.ru/android-dev/thread1408135.html
Здравствуйте. Есть два потока : основной (MainActivity) и второй, который подгружает данные с сервера, записывает их в БД и после загрузки данных мне необходимо отрисовать содержимое для...
Программирование Android Изображение увиличивается в 2 раза Здравствуйте, я на карту вывожу различные метки, в качестве меток беру изображения из res\drawable. При выводе на карту метка с изображением увеличивается в 2 раза, т.е. была размером 32х32 пикселя,... http://www.cyberforum.ru/android-dev/thread1408114.html
Приложение с собственной картой Программирование Android
Делаю первое приложение под платформу android (автобусы города), еще не знаю многих тонкостей.(К сожалению друзей android developer'ов тоже нет, по этому приходится постигать всё самому). У меня в...
Android+PocketSphinx Программирование Android
Доброго времени суток. Недавно заинтересовался распознаванием речи на андроид. Просмотрел много примеров и много вариантов использования библиотек. Просмотрены варианты использования api от google и ...
Программирование Android Ошибка The content of the adapter has changed but ListView did not receive a notification http://www.cyberforum.ru/android-dev/thread1407885.html
Прошу помощи, т.к. уже не знаю, что делать. Наверное нахватает знаний. На одном единственном телефоне постоянно вылетает ошибка The content of the adapter has changed but ListView did not receive a...
Программирование Android Toast после AlertDialog.Builder Добрый день. Нужно вывести Toast после нажатия setPositiveButton, в зависимости от результата. case (R.id.newFolderBtn): final String result = ""; // переменная результата final... подробнее

Показать сообщение отдельно
Vadik052
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 11

FloatingButton + RecyclerView+ RefreshLayout - Программирование Android

30.03.2015, 20:26. Просмотров 579. Ответов 2
Метки (Все метки)

Имеется xml:
Кликните здесь для просмотра всего текста
XML
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
<!--RefreshLayout-->
<android.support.v4.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    android:id="@+id/refresh_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!--FrameLayout-->
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <!--RecyclerView-->
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:scrollbars="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
        <!--FloatingActionButton-->
            <com.melnykov.fab.FloatingActionButton
                android:id="@+id/floating_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom|right"
                android:layout_margin="16dp"
                android:src="@drawable/ic_add_white_24dp"
                fab:fab_colorNormal="@color/primary"
                fab:fab_colorPressed="@color/primary_pressed"
                fab:fab_colorRipple="@color/ripple" />
    </FrameLayout>
</android.support.v4.widget.SwipeRefreshLayout>

Есть класс:
Кликните здесь для просмотра всего текста
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
    SwipeRefreshLayout refresh_view;
    private RecyclerView recycler_view;
    private RecyclerView.LayoutManager layout_manager;
    private Adapter_Card_View adapter_card_view;
    public static String[] source_image = {
            "http://www.example.ru/img.jpg" };
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_room_fond, container, false);
        //RecyclerView
        recycler_view = (RecyclerView) rootView.findViewById(R.id.recycler_view);
        recycler_view.setHasFixedSize(true);
        //Layout для RecyclerView
        layout_manager = new LinearLayoutManager(getActivity());
        recycler_view.setLayoutManager(layout_manager);
        //Adapter
        adapter_card_view = new Adapter_Card_View();
        //Listener
        adapter_card_view.Set_Card_Listener(new Adapter_Card_View.Card_Listener(){
            @Override
            public void Item_Click (int position) {
                Toast.makeText(getActivity(), "Нажатие на карточку: " + position, Toast.LENGTH_SHORT).show();
            }
        });
        //Добавление карточек
        Add_Card();
        //Назначение RecyclerView Adapter
        recycler_view.setAdapter(adapter_card_view);
        //Добавление Floating Button
        FloatingActionButton floating_button = (FloatingActionButton) rootView.findViewById(R.id.floating_button);
        floating_button.attachToRecyclerView(recycler_view);
        //Добавление SwipeRefreshLayout
        refresh_view = (SwipeRefreshLayout) rootView.findViewById(R.id.refresh_view);
        refresh_view.setRefreshing(false);
        refresh_view.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener(){
            @Override
            public void onRefresh() {
                Toast.makeText(getActivity(), "Обновляем: ", Toast.LENGTH_SHORT).show();
                refresh_view.setRefreshing(true);
                refresh_view.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(getActivity(), "Завершаем", Toast.LENGTH_SHORT).show();
                        refresh_view.setRefreshing(false);
                    }
                }, 3000);
            }
        });
        //---------
        recycler_view.setOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
            }
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                int topRowVerticalPosition =
                        (recycler_view == null || recycler_view.getChildCount() == 0) ?
                                0 : recycler_view.getChildAt(0).getTop();
                refresh_view.setEnabled(topRowVerticalPosition >= 0);
            }
        });
        return rootView;
    }
 
    //Добавление карточек
    private void Add_Card() {
        for (int i = 0; i < Main.titleList.size(); i++) {
            String s = Main.titleList.get(i);
            //mDataSet.add(i, s);
            adapter_card_view.Add_Item(i, source_image[0], s);
            recycler_view.scrollToPosition(0);
        }
    }
}

Вопрос: Получается сделать только два варианта: Либо floating_button появляется/исчезает, либо refresh_view, обновляет "Как надо"(То есть recyler_view свободно листается, refresh_view не перехватывает скролл вниз) А вот сделать два варианта одновременно у меня, увы, не выходит.
Есть какие нибудь идеи?
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru