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

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

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

Drawer Layout - Программирование Android

25.03.2014, 20:37. Просмотров 876. Ответов 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);
        }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2014, 20:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Drawer Layout (Программирование Android):

Анимированный дизайн смены Layout или просто выдвигаемый layout - Программирование Android
Ну, думаю тут и так всё понятно. Я просто не знаю, какие ключевые слова вводить в гугл, всё что попадается это Drawer А мне нужнен просто...

At android.widget.LinearLayout.setChildFrame Layout в Layout-те - Программирование Android
Нужен совет бывалых. У меня есть активити которое запускается с мейн активити, на нем лежит Layout (горизонтальный) в котором 2й...

Не хочет работать в layout, но включается в layout-land - Программирование Android
доброе утро ! пишу первое приложение. обычный мейн.хмель выглядит вот так : &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;LinearLayout...

Добавить layout на layout - Программирование Android
Нашёл такой код: layout.add(view); только не понимаю куда его писать. Нужно чтобы один layout можно было использовать в нескольких других. ...

Material Drawer - Программирование Android
Здравствуйте, помогите, пожалуйста, разобраться: 1) создал тулбар с менюшкой, отлично работает, однако если добавить в разметку еще слой...

Navigation Drawer - Программирование Android
Пытаюсь разобраться с Navigation Drawer. Делаю по гайду https://github.com/codepath/android_guides/wiki/Fragment-Navigation-Drawer и в...

1
Netscape
373 / 360 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
26.03.2014, 01:56 #2
Вот такой вариант есть:
http://stackoverflow.com/a/18872933/2894324
Дождаться пока он закроется, и только после этого менять фрагмент.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2014, 01:56
Привет! Вот еще темы с ответами:

Navigation drawer - Программирование Android
Как так подключить navigation drawer чтобы он был доступен не в одном а во всех или в нескольких активити приложения и во всех этих...

Navigation drawer - Программирование Android
Скажите, как сделать так чтобы при открытии другого activity, navigation drawer можно было так же с левой стороны на экране вызвать? При...

Navigation Drawer - Программирование Android
помогите найти ошибку. код главного активити package ua.com.cls; import android.annotation.SuppressLint; import...

Navigation Drawer - Программирование Android
Всем привет. Подскажите в чем может быть проблема. Создал Navigation Drawer по этому примеру. http://habrahabr.ru/post/250765/ добавил туда...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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