5

Sto progettando un cassetto di navigazione nativo in Android Studio. Non riesco a vedere il cassetto nella mia anteprima perché è seduto a sinistra dell'attività, fuori dalla portata dell'anteprima. Per ora sto usando un file testlayout.xml per vedere le mie modifiche, ma molte volte ho dimenticato di copiarle incollandole nell'attività giusta. C'è un modo per vedere in anteprima il layout del cassetto?Vedi anteprima cassetto di navigazione

+1

Solo per il gusto di conoscenza, Google offre ora una libreria di supporto di progettazione con nativo di navigazione cassetto: http://developer.android.com/reference/android/support/design/widget /NavigationView.html?utm_campaign=io15&utm_source=dac&utm_medium=blog – Leonardo

+0

Possibile duplicato di [Posso visualizzare in anteprima un cassetto di navigazione aperto in Android Studio] (http://stackoverflow.com/questions/30699561/can-i-preview-an-open -navigation-drawer-in-android-studio) – gustavohenke

+0

Se la mia risposta è la migliore risposta, possiamo contrassegnarla come risposta accettata per favore? – Yoker

risposta

4

Se si vuole essere in grado di visualizzare in anteprima nella barra formato cassetto/navigazione

Se si sta seguendo il tutorial in https://developer.android.com/training/implementing-navigation/nav-drawer.html

Si può mettere il ListView per il cassetto nav in un file XML diverso nella cartella/layout, quindi includilo nel layout del cassetto xml. Significa che è possibile modificarlo nel file drawer_layout ed essere in grado di vedere correttamente il layout

/drawer_layout

<?xml version="1.0" encoding="utf-8"?> 
<ListView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/left_drawer" 
     android:layout_width="280dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:choiceMode="singleChoice" 
     android:divider="@android:color/transparent" 
     android:dividerHeight="0dp" 
     android:background="@color/nav_drawer_background_color"/> 

Poi nella barra di navigazione

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<!-- The main content view --> 
<FrameLayout 
    android:id="@+id/content_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


</FrameLayout> 

<!-- The navigation drawer --> 
<include 
    android:id="@+id/listView" 
    layout="@layout/drawer_layout"/> 
</android.support.v4.widget.DrawerLayout> 
+0

http://stackoverflow.com/questions/30699561/can-i- anteprima-an-open-navigazione cassetti-in-android-studio –

0

Per vedere NavigationView anteprima Aggiungi strumenti namespace al layout del cassetto:

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools"> 

quindi aggiungere l'attributo strumenti: openDrawer uguale alla gravità del valore layout_gravity della visualizzazione di navigazione, ad esempio

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:openDrawer="left"> 


<android.support.design.widget.NavigationView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="left" 
    app:headerLayout="@layout/navigation_header_main" 
    app:itemTextAppearance="@style/NavigationItemStyleLight" 
    app:menu="@menu/navigation_main_menu"/> 

</android.support.v4.widget.DrawerLayout> 
0

È possibile utilizzare NavigationView per ottenere la sua anteprima su Android Studio, è molto meglio e più facile da implementare poi il vecchio NavigationDrawer.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

    <include 
     layout="@layout/prof_app_bar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     app:itemTextColor="@color/text_head_color" 
     app:itemIconTint="@null" 
     app:headerLayout="@layout/nav_header_main2" 
     app:menu="@menu/professional_menu" /> 
</android.support.v4.widget.DrawerLayout> 

Definire il menù in luogo navigationmenu.xml nella cartella delle risorse menù: -

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 


    <group android:checkableBehavior="single" 
     android:id="@+id/top_menu"> 
     <item 
      android:id="@+id/pnav_setting" 
      android:icon="@drawable/accountsettings" 
      android:title="@string/paccount_settingss" /> 
     <item 
      android:id="@+id/pnav_expertise" 
      android:icon="@drawable/professional" 
      android:title="@string/pexpertise" /> 
     <item 
      android:id="@+id/pnav_comu" 
      android:icon="@drawable/communication" 
      android:title="@string/pcomunication" /> 
     <item 
      android:id="@+id/pnav_change_pass" 
      android:icon="@drawable/changepasswd" 
      android:title="@string/pchange_pass" /> 
     <item 
      android:id="@+id/pnav_change_lang" 
      android:icon="@drawable/changelang" 
      android:title="@string/pchange_lang" 
      android:visible="true"/> 
    </group> 

    <group android:checkableBehavior="single" 
     android:id="@+id/middle_menu"> 

     <item 
      android:id="@+id/pnav_about_us" 
      android:icon="@drawable/aboutus" 
      android:title="@string/about_us" /> 
     <item 
      android:id="@+id/pnav_feedback" 
      android:icon="@drawable/feedback" 
      android:title="@string/feedback" 
      android:visible="false"/> 
     <item 
      android:id="@+id/nav_privacy_policy" 
      android:icon="@drawable/privacy" 
      android:title="@string/privacy_policy" /> 
     <item 
      android:id="@+id/pnav_faq" 
      android:icon="@drawable/faq" 
      android:visible="false" 
      android:title="@string/faq" /> 
     <item 
      android:id="@+id/pnav_contact_us" 
      android:icon="@drawable/contactus" 
      android:title="@string/contact_us" /> 

    </group> 

    <group android:checkableBehavior="single" 
     android:id="@+id/bottom_menu"> 
     <item 
      android:id="@+id/pnav_sign_out" 
      android:icon="@drawable/signout" 
      android:title="@string/sign_out" /> 
    </group> 



</menu> 

E, per ottenere eventi click utilizzare questo: -

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(yourItemclickListener); 
0
<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
tools:showIn="navigation_view"> 

<group android:checkableBehavior="single"> 
    <item 
     android:id="@+id/nav_camera" 
     android:icon="@drawable/ic_menu_camera" 
     android:title="Import" /> 
    <item 
     android:id="@+id/nav_gallery" 
     android:icon="@drawable/ic_menu_gallery" 
     android:title="Gallery" /> 
    <item 
     android:id="@+id/nav_slideshow" 
     android:icon="@drawable/ic_menu_slideshow" 
     android:title="Slideshow" /> 
    <item 
     android:id="@+id/nav_manage" 
     android:icon="@drawable/ic_menu_manage" 
     android:title="Tools" /> 
</group> 

<item android:title="Communicate"> 
    <menu> 
     <item 
      android:id="@+id/nav_share" 
      android:icon="@drawable/ic_menu_share" 
      android:title="Share" /> 
     <item 
      android:id="@+id/nav_send" 
      android:icon="@drawable/ic_menu_send" 
      android:title="Send" /> 
    </menu> 
</item> 

Just Add

tools:showIn="navigation_view"