2016-01-13 11 views
10

हम एंड्रॉइड ऐप बना रहे हैं, और कुछ ऐसा है जिसे हम जोड़ना चाहते हैं। जीमेल ऐप का असर कौन सा प्रभाव है।एंड्रॉइड स्टूडियो नेविगेशन ड्रॉवर जीमेल ऐप

आप चुन सकते हैं कि आप कौन सा खाता देखना चाहते हैं (और शेष ऐप तदनुसार व्यवहार करेगा)।

Example

संपादित करें:

मैं अब पहले से ही एक (काम) नेविगेशन पट्टी है, लेकिन चीजों को मैं चाहता हूँ शीर्षक में गोल प्रतीक हैं। मैं चाहता हूं कि कोई व्यक्ति जो उपयोगकर्ता देख रहे हैं उसे चुनने में सक्षम हो।

+0

नवीनतम संपादन की जांच करें, और अगर इसे मदद मिली तो इसे स्वीकार करने के लिए मत भूलना। ;) – Mauker

+0

अरे, परेशान करने के लिए खेद है, लेकिन आपने दाईं ओर "1" कैसे जोड़ा? – Omer

+0

@ ओमर यह जीमेल ऐप से एक स्क्रीनशॉट है। – Tvde1

उत्तर

24

समर्थन lib से NavigationView का उपयोग करके आप जो प्रभाव चाहते हैं उसे प्राप्त किया जा सकता है।

आप उस here पर एक पूर्ण ट्यूटोरियल पा सकते हैं। और आप उस ट्यूटोरियल here से पूर्ण स्रोत कोड डाउनलोड कर सकते हैं।

और here's another nice tutorial जो आप अनुसरण कर सकते हैं।

लेकिन लंबी कहानी छोटी, यह दृश्य दो मुख्य भागों, एक शीर्षलेख और मेनू भाग के बीच विभाजित है, और उनमें से प्रत्येक को आपको XML पर परिभाषित करना होगा।

कि ट्यूटोरियल से के रूप में:

हैडर देखें

यह दृश्य मूल रूप से नेविगेशन दराज, जो प्रोफ़ाइल चित्र, नाम रखती है और ईमेल आदि आप जरूरत के शीर्ष भाग है इसे एक अलग लेआउट फ़ाइल में परिभाषित करने के लिए हम उसमें में बस एक पल देखेंगे।

मेनू

यह मेनू आपको अपनी शीर्षक के नीचे दिखाना चाहते है, हम एक मेनू फ़ोल्डर में मेनू को परिभाषित है, जैसे आप अपने अतिप्रवाह मेनू के लिए मेनू परिभाषित करते हैं। तो मूल रूप से नेविगेशन व्यू हेडर व्यू और मेनू जो आप अपने स्लाइडिंग ड्रॉवर में उपयोग करने जा रहे हैं, के लिए एक कंटेनर है। तो अब कि आप नेविगेशन व्यू को समझते हैं, हम अपने नेविगेशन ड्रॉवर का निर्माण शुरू कर सकते हैं।

इसी के साथ

मन में, अपने शीर्ष लेख का निर्माण के रूप में आप किसी भी अन्य लेआउट के साथ करना होगा। और मेनू कुछ हद तक टूलबार/एक्शनबार मेनू की तरह परिभाषित किया गया है। उदा .:

navigation_menu.xml

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

     <item 
      android:id="@+id/drawer_home" 
      android:checked="true" 
      android:icon="@drawable/icon_home" 
      android:title="@string/title_home"/> 

     <item 
      android:id="@+id/drawer_content" 
      android:icon="@drawable/icon_content" 
      android:title="@string/title_content"/> 

     <item 
      android:id="@+id/drawer_about" 
      android:icon="@drawable/icon_about" 
      android:title="@string/title_about"/> 

     <item 
      android:id="@+id/drawer_exit" 
      android:icon="@drawable/icon_exit" 
      android:title="@string/title_exit"/> 

     </group> 
</menu> 

फिर, पर अपने Activity आप बस एक ट्यूटोरियल में पाया की तरह एक लेआउट बनाने के लिए, NavigationView के साथ DrawerLayout का उपयोग कर करना होगा।

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context=".MainActivity"> 

    <LinearLayout 
     android:layout_height="match_parent" 
     android:layout_width="match_parent" 
     android:orientation="vertical" 
     > 
     <include 
      android:id="@+id/toolbar" 
      layout="@layout/tool_bar"/> 
     <FrameLayout 
      android:id="@+id/frame" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

     </FrameLayout> 

    </LinearLayout> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_view" 
     android:layout_height="match_parent" 
     android:layout_width="wrap_content" 
     android:layout_gravity="start" 
     app:headerLayout="@layout/header" 
     app:menu="@menu/navigation_menu"/> 
</android.support.v4.widget.DrawerLayout> 

तुम भी प्रत्येक स्क्रीन आप इस NavigationView साथ प्रदर्शित करना चाहते हैं के लिए कुछ Fragments बनाना होगा। के बाद आप उस किया है, पर अपने Activity आप NavigationView.OnNavigationItemSelectedListener, इस तरह लागू करने से चयन की घटनाओं को संभाल कर सकते हैं:

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { 
    // Your Activity 
     @Override 
    public boolean onNavigationItemSelected(MenuItem menuItem) { 
     Fragment fragment = null; 

     switch(menuItem.getItemId()) { 
      case R.id.drawer_home: 
       fragment = new YourFragment(); 
       break; 
      case R.id.drawer_content: 
       fragment = new AnotherFragment(); 
       break; 
      case R.id.drawer_about: 
       fragment = new AboutFragment(); 
       break; 
      case R.id.drawer_exit: 
       // TODO - Prompt to exit. 
       finish(); 
       break; 
     } 

     if (fragment == null) { 
      fragment = new YourFragment(); 
     } 

     drawerLayout.closeDrawers(); 

     FragmentManager fragmentManager = getSupportFragmentManager(); 
      fragmentManager.beginTransaction() 
        .replace(R.id.container, fragment) 
        .commit(); 

     return true; 
    } 
} 

आपके संपादन के लिए के रूप में, माउस एक ImageView द्वारा प्रतिनिधित्व किया जा सकता है। और एकाधिक प्रोफाइल के बीच नेविगेट करने के लिए, यह इस बात पर निर्भर करता है कि आपने अपने ऐप पर उस तर्क को कैसे लागू किया है, लेकिन "जेनेरिक" उत्तर के रूप में, आप Spinner जैसे कुछ का उपयोग करके उन प्रोफाइल को स्विच कर सकते हैं।

उन ट्यूटोरियल है कि चरण में आपकी मदद करेंगे:

एक बार जब आप है कि आपके हैडर पर सेट किए गए , टी संभाल लें वह आइटम चयन और तदनुसार उपयोगकर्ता प्रोफ़ाइल को बदलें। (यह अंतिम भाग इस बात पर निर्भर करता है कि आपने अपने ऐप पर उपयोगकर्ता प्रोफाइल कैसे कार्यान्वित किए हैं)। लेकिन जैसे ही एक सिर शुरू होता है, आप android training site, अधिक विशेष रूप से this part देख सकते हैं।

+0

अधिक सही जवाब। आगे बढ़ें # मॉकर –

+0

@ इंटेलिजेमिया क्या? क्या आप समझ सकते हैं कि आपका क्या मतलब है? – WarrenFaith

+0

मैंने एक बार ब्लॉग पोस्ट देखा जो एंड्रॉइड स्टूडियो 1.4 से नेविगेशन व्यू टेम्पलेट को विच्छेदित करता है: http://androidessence.com/creating-a-material-design-navigation-drawer/ – AdamMc331

3

आप NavigationView

यह मेनू के माध्यम से लागू करने के लिए बढ़ नेविगेशन आइटम की मदद से सामग्री नेविगेशन दराज आसान संसाधन के लिए रूपरेखा प्रदान करता है का उपयोग करना चाहिए। Befor नेविगेशन व्यू, हमारे पास सामग्री कस्टम एडाप्टर, के साथ लिस्टव्यू या लाइनरलेआउट का उपयोग करके नेविगेशन ड्रॉवर बनाने का कठिन तरीका है, लेकिन अब हमें केवल ड्रावरलायआउट में नेविगेशन व्यू जोड़ने की आवश्यकता है, बाकी सब कुछ नेविगेशन व्यू द्वारा संभाला जाएगा।

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

    <!-- Your contents --> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     app:menu="@menu/my_navigation_items" /> 
</android.support.v4.widget.DrawerLayout> 

इस आवश्यकता के लिए आप नमूना जांच कर सकते हैं

  1. MaterialDrawer

  2. How To Make Material Design Navigation Drawer

  3. Playing with NavigationView

आशा इस मदद करता है।

0

मुझे लगता है कि यह MaterialDrawer वह है जिसे आप ढूंढ रहे हैं। इस पुस्तकालय में कई उदाहरण हैं। आप या तो सीधे इस पुस्तकालय का उपयोग कर सकते हैं या स्रोत कोड पढ़ सकते हैं और अपना खुद का दराज लागू कर सकते हैं।

संबंधित मुद्दे