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

Конфликт между Navigation Drawer и Side Menu - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android MediaTek Labs http://www.cyberforum.ru/android-dev/thread1332099.html
Всем привет. Заранее прошу прощения, если тему создал не в том разделе. Хочу поинтересоваться, кто-нибудь слышал про MediaTek Labs? Наткнулся недавно на нее в статье на одной сайте. Суть в том, что компания МТК предоставляет SDK и HDK пользователям, которые хотят замутить что-нибудь свое и техподдержку всем участникам программы. У меня есть желание что-нибудь сделать и свободное время, но...
Android Пустой список после вызова adapter.notifyDataSetChanged При создании все норм. Пропадает только после обновления Фрагмент Context context; View v; ListView listView; AnotherListAdapter adapter; List<String> list,list2; http://www.cyberforum.ru/android-dev/thread1331913.html
Android Xml файлы
Подскажите пожалуйста,как можно реализовать 2 xml файла в одной активности,тоесть пол экрана main.xml и пол экрана main2.xml
Не могу разобраться с созданием приложения Android
Решил заняться разработкой под Android, при создании приложения получаю кучу ошибок, что-то с ресурсами. Среда - последняя Eclipse Luna. Установленные версии SDK и логи клипсы в скриншотах. Я понимаю, что тема сто раз обсуждалась, я кучу тем на форумах прочитал, но что-то не срастается. Приложение пытаюсь создать простейшее. Кто-нибудь , если времени не жалко напишите пошагово, что нужно делать....
Android Блокировка сторонних ресурсов http://www.cyberforum.ru/android-dev/thread1331801.html
Нужно реализовать возможность заблокировать ресурсы не из белого списка. Тоже самое с приложениями. Можно использовать любые разрешения и root права. Подскажите пожалуйста, может быть кто-нибудь сталкивался с подобным или хотя бы просто идеи, по любой из двух задач, любые. Буду очень благодарен.
Android После обновления AndroidStudio пропали заголовки активностей Зравствуйте. Столкнулся с проблемой: после обновления AndroidStudio до версии 1.0.0 в приложениях пропали заголовки активностей. Даже в самых простых автоматически сгенерированных приложениях (Hello world) с одной активностью заголовка нет. Если заменить суперкласс активности с Activity на ActionBarActivity, то заголовок появляется, но без значка приложения. В манифесте всё, вроде бы, правильно:... подробнее

Показать сообщение отдельно
BigApple
0 / 0 / 0
Регистрация: 21.02.2014
Сообщений: 35
16.12.2014, 18:25     Конфликт между Navigation Drawer и Side Menu
Доброе время суток, форумчане! Нужна ваша помощь! SOS!

Дела в том, что я создал классический навигационное меню (Navigation Drawer), которое можно встретить практически во всех приложениях Google. Также добавил справа так называемый sliding side menu. Данное меню вы скорее всего встречали в приложении Facebook`a. (Использовал кстати данную библиотеку кому интересно https://github.com/jfeinstein10/SlidingMenu).

Проблема следующая: когда открыт Navigation Drawer и ты хочешь его закрыть движение пальца с права на лева открывается side menu справа. Как сказать программно, что когда открыт Navigation Drawer так называемый sliding не действует для side menu?! Что надо добавить, чтобы сперва закрывался Navigation Drawer, а затем уже ты мог бы открыть side menu. Внизу выложил код и рисунок для наглядности!

Выручайте! Нужна помощь! Буду рад любой помощи! =)

Конфликт между Navigation Drawer и Side Menu

Код навигационного меню слева(Navigation Drawer):
Кликните здесь для просмотра всего текста

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
public class NavigationDrawerFragment extends Fragment {
 
    public static final String PREF_FILE_NAME="testpref";
    public static final String KEY_USER_LEARNED_DRAWER="user_learned_drawer";
 
    private ActionBarDrawerToggle mDrawerToggle;
    private ListView mDrawerList;
    private DrawerLayout mDrawerLayout;
 
    private boolean mUserLearnedDrawer;
    private boolean mFromSavedInstanceState;
 
    private View containerView;
 
    public NavigationDrawerFragment() {
        // Required empty public constructor
    }
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mUserLearnedDrawer = Boolean.valueOf(readFromPreferences(getActivity(),KEY_USER_LEARNED_DRAWER,"false"));
        if(savedInstanceState!=null){
            mFromSavedInstanceState=true;
        }
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
    }
 
    public void setUp(int fragmentId, DrawerLayout drawerLayout, final Toolbar toolbar){
        containerView = getActivity().findViewById(fragmentId);
        mDrawerLayout = drawerLayout;
        mDrawerToggle = new ActionBarDrawerToggle(getActivity(),drawerLayout,toolbar,R.string.drawer_open, R.string.drawer_close){
 
            @Override
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
                if(!mUserLearnedDrawer){
                    mUserLearnedDrawer=true;
                    saveToPreferences(getActivity(), KEY_USER_LEARNED_DRAWER, mUserLearnedDrawer+"");
                }
                getActivity().invalidateOptionsMenu();
            }
 
            @Override
            public void onDrawerClosed(View drawerView) {
                super.onDrawerClosed(drawerView);
                getActivity().invalidateOptionsMenu();
            }
 
            public void onDrawerSlide(View drawerView, float slideOffset) {
                super.onDrawerSlide(drawerView, slideOffset);
 
                if(slideOffset<0.6) {
                    toolbar.setAlpha(1 - slideOffset);
                }
            }
        };
        if(!mUserLearnedDrawer&&!mFromSavedInstanceState){
            mDrawerLayout.openDrawer(containerView);
        }
        mDrawerLayout.setDrawerListener(mDrawerToggle);
 
        mDrawerLayout.post(new Runnable() {
            @Override
            public void run() {
                mDrawerToggle.syncState();
            }
        });
    }
    public static void saveToPreferences(Context context,String preferenceName, String preferenceValue){
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_FILE_NAME, context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(preferenceName, preferenceValue);
        editor.apply();
    }
    public static String readFromPreferences(Context context, String preferenceName, String defaultValue){
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_APPEND);
        return  sharedPreferences.getString(preferenceName, defaultValue);
    }
}


Код MainActivity в котором описано поведение side menu справа:
Кликните здесь для просмотра всего текста
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
public class MainActivity extends ActionBarActivity {
 
    private Toolbar toolbar;
    private SlidingMenu menu;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        toolbar = (Toolbar) findViewById(R.id.application_toolbar);
        setSupportActionBar(toolbar);
 
        getSupportActionBar().setDisplayShowHomeEnabled(true);
 
        NavigationDrawerFragment drawerFragment = (NavigationDrawerFragment)getFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
        drawerFragment.setUp(R.id.fragment_navigation_drawer,(DrawerLayout)findViewById(R.id.drawer_layout), toolbar );
       //описываем side menu
        SlidingMenu menu = new SlidingMenu(this);
        menu.setMode(SlidingMenu.RIGHT);
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        menu.setFadeDegree(0.35f);
        menu.setShadowWidth(15);
        menu.setShadowDrawable(R.drawable.shadow);
        menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
        menu.setMenu(R.layout.side_menu);
        menu.setBehindWidthRes(R.dimen.side_menu_behind_width);
 
        String[] items = {"Первый фрагмент","Второй фрагмент"};
        ((ListView) findViewById(R.id.side_menu)).setAdapter(
                new ArrayAdapter<Object>(
                        this,
                        R.layout.side_menu_items,
                        R.id.text,
                        items
                )
        );
 
        menu.setBackgroundColor(0xFF333333);
        menu.setSelectorDrawable(R.drawable.side_menu_items_background);
 
        this.menu = menu;
    }
    public void menuToggle(){
        if(menu.isMenuShowing()) menu.showContent();
        else menu.showMenu();
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_search) {
 
        }
 
        if (id == R.id.action_side_menu) {
            menuToggle();
            return true;
        }
 
        if(id == R.id.action_communication){
            startActivity(new Intent(this,CommunicationActivity.class));
        }
 
        return super.onOptionsItemSelected(item);
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru