Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
dan41k
]:->
 Аватар для dan41k
97 / 91 / 13
Регистрация: 12.11.2013
Сообщений: 398
#1

Drawer Layout - Android

25.03.2014, 20:37. Просмотров 831. Ответов 1
Метки нет (Все метки)

Имеется Drawer Layout со списком меню. Каждое меню кликабельно и меняет Fragment-ы. При нажатии на пункт списка выполняется метод:

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
    private void selectItem(int position) {
 
        mDrawerList.setItemChecked(position, true);
        mDrawerLayout.closeDrawer(mDrawerList);
            
        FragmentManager fm = getFragmentManager();
            
        switch(position) {
                    
            case 0:
                Fragment userInfoFragment = new UserInfoFragment();
 
                fm.beginTransaction()
                    .replace(R.id.content_frame, userInfoFragment)
                    .commit();              
                break;    
            case 1: 
                Fragment mainFragment = new MainFragment();
                        
                fm.beginTransaction()
                    .replace(R.id.content_frame, mainFragment)
                    .commit();
                break;
        }
    }
В фрагменты загружается тяжеловесный контент, поэтому когда нажимаешь на пункт списка - приложение подвисает, Drawer скрывается наполовину (а должен полностью уходить и запускать ProgressDialog). Как сделать так, чтобы сначала убрался список, а потом началась загрузка?

З.Ы. в фрагменте выполняется вот такой AsynkTask

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
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        progressDialog = new ProgressDialog(context);
        progressDialog.setIndeterminate(true);
        progressDialog.setCancelable(true);
        progressDialog.setMessage("Ожидание...");
        progressDialog.show();
        initLoader();
        try {
            ((MainActivity) context).getThreadInMain().join();
        } catch (InterruptedException e) {
            Log.e("MyTag", "Message: "+e.getMessage());
        }
        
        initTwitter();
    }
 
    @Override
    protected List<twitter4j.Status> doInBackground(Integer... params) {
        try {
            Paging paging = new Paging(params[0].intValue(), 20);
            statuses = twitter.getHomeTimeline(paging);
        } catch (TwitterException e) {
            Log.e("MyTag", "Message: "+e.getMessage());
        }
        return statuses;
    }
    
    @Override
    protected void onPostExecute(List<twitter4j.Status> statuses) {
        progressDialog.dismiss();
        if (flag) {
            adapter.add(statuses);
            adapter.notifyDataSetChanged();
            int index = statusList.getFirstVisiblePosition();
            int top = (statusList.getChildAt(0) == null) ? 0 : statusList.getChildAt(0).getTop();
            statusList.setSelectionFromTop(index, top);
        }
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2014, 20:37     Drawer Layout
Посмотрите здесь:

Не хочет работать в layout, но включается в layout-land Android
Android At android.widget.LinearLayout.setChildFrame Layout в Layout-те
Android Добавить layout на layout
Navigation Drawer - ошибка Android
Android Navigation Drawer не работает
Navigation Drawer Android
Navigation Drawer Android
Android Запретить открытие Drawer
Android Material Drawer
Navigation drawer Android
Android Navigation drawer
Android Navigation Drawer

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
 Аватар для Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
26.03.2014, 01:56     Drawer Layout #2
Вот такой вариант есть:
http://stackoverflow.com/a/18872933/2894324
Дождаться пока он закроется, и только после этого менять фрагмент.
Yandex
Объявления
26.03.2014, 01:56     Drawer Layout
Ответ Создать тему
Опции темы

Текущее время: 02:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru