Autore Topic: Navigation Drawer non cambia l'icona  (Letto 462 volte)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Navigation Drawer non cambia l'icona
« il: 08 Settembre 2015, 17:23:16 CEST »
0
Salve a tutti!

Con la mia app ho creato un navigation drawer ma l'icona di navigazione rimane quello di una freccia mentre nel codice è specificato che la deve cambiare con una immagine che gli fornisco.

Questo è il codice:
Codice (Java): [Seleziona]
  mDrawerToggle = new ActionBarDrawerToggle(
                activity,                    /* host Activity */
                mDrawerLayout,                    /* DrawerLayout object */
                R.drawable.ic_drawer,             /* nav drawer image to replace 'Up' caret */
                R.string.navigation_drawer_open,  /* "open drawer" description for accessibility */
                R.string.navigation_drawer_close  /* "close drawer" description for accessibility */
        ) {
            @Override
            public void onDrawerClosed(View drawerView) {
                super.onDrawerClosed(drawerView);
                if (!isAdded()) {
                    return;
                }

                getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu()
            }

            @Override
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
                if (!isAdded()) {
                    return;
                }

                if (!mUserLearnedDrawer) {
                    // The user manually opened the drawer; store this flag to prevent auto-showing
                    // the navigation drawer automatically in the future.
                    mUserLearnedDrawer = true;
                    SharedPreferences sp = PreferenceManager
                            .getDefaultSharedPreferences(getActivity());
                    sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).apply();
                }

                getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu()
            }
        };

        // If the user hasn't 'learned' about the drawer, open it to introduce them to the drawer,
        // per the navigation drawer design guidelines.
        if (!mUserLearnedDrawer && !mFromSavedInstanceState) {
            mDrawerLayout.openDrawer(mFragmentContainerView);
        }

        // Defer code dependent on restoration of previous instance state.
        mDrawerLayout.post(new Runnable() {
            @Override
            public void run() {
                mDrawerToggle.syncState();
            }
        });

        mDrawerLayout.setDrawerListener(mDrawerToggle);

Il tutto funziona ma , come ho detto in precedenza, non visualizzo "ic_drawer" ma una frecca di default.

Qualche suggerimento su quale potrebbe essere la causa?

Grazie mille in anticipo!

Offline Friz02

  • Utente junior
  • **
  • Post: 104
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    s3 neo Samsung
  • Sistema operativo:
    windows 7
Re:Navigation Drawer non cambia l'icona
« Risposta #1 il: 16 Ottobre 2015, 19:45:32 CEST »
0
Dovresti crearti una toolbar ed implementarla nell'applicazione:
1. crei una android.support.v7.widget.Toolbar (toolbar_drawer.XML);
2. la includi nel layout di riferimento
Codice (XML): [Seleziona]
<include
android:id="@+id/tool_bar"
layout="@layout/toolbar_drawer"
/>
3. implementi il tutto nel codice
 
Codice (Java): [Seleziona]
toolbar = (Toolbar)findViewById(R.id.tool_bar);
 setSupportActionBar(toolbar);
Codice (Java): [Seleziona]
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:Navigation Drawer non cambia l'icona
« Risposta #2 il: 19 Ottobre 2015, 09:40:39 CEST »
0
Ho capito , ci proverò!
grazie mille ^^