Android फेसबुक शैली स्लाइड


283

नया फेसबुक एप्लिकेशन और इसका नेविगेशन बहुत अच्छा है। मैं बस यह देखना चाह रहा था कि मेरे आवेदन में इसका अनुकरण कैसे किया जा सकता है।

किसी के पास कोई सुराग है कि इसे कैसे प्राप्त किया जा सकता है?

यहां छवि विवरण दर्ज करें

शीर्ष बाएँ बटन पर क्लिक करने पर पृष्ठ स्लाइड और निम्न स्क्रीन दिखाई जाती है:

यहां छवि विवरण दर्ज करें

यूट्यूब वीडियो


2
हां एक वीडियो भी मददगार होगा, जिससे सटीक प्रभाव पता चल सके।
बूल.देव २ b

@ bool.dev यहाँ वीडियो है: youtube.com/watch?v=ANLMaL7zn20
हर्षा एमवी

@ हर्षमाव: - इस सूत्र को देखने का प्रयास करें। मुझे लगता है कि इससे आपको कुछ मदद मिल सकती है। stackoverflow.com/questions/8453320/…
शशांक_

3
Android में स्लाइड-आउट नेविगेशन के बारे में बहुत अच्छा लेख - androiduipatterns.com/2012/06/… । जरूर पढ़े।
एलेक्सकोरोव्स्की

मैंने अपना स्वयं का स्लाइडिंग मेनू लागू किया है, यहां देखें stackoverflow.com/a/15880375/1939564
मुहम्मद बाबर

जवाबों:


176

मैंने खुद इसके साथ एक नाटक किया है, और मुझे जो सबसे अच्छा तरीका मिला, वह है फ्रेमलेयआउट का उपयोग करना और मेनू के शीर्ष पर एक कस्टम क्षैतिज क्षैतिज दृश्य (HSV) रखना। एचएसवी के अंदर आपके आवेदन दृश्य हैं, लेकिन पहले बच्चे के रूप में एक पारदर्शी दृश्य है। इसका मतलब है, जब एचएसवी में शून्य स्क्रॉल ऑफसेट होता है, तो मेनू (और अभी भी आश्चर्यजनक रूप से क्लिक करने योग्य होगा) के माध्यम से दिखाएगा।

जब एप्लिकेशन शुरू होता है, हम एचएसवी को पहले दिखाई देने वाले एप्लिकेशन व्यू के ऑफसेट तक स्क्रॉल करते हैं, और जब हम मेनू दिखाना चाहते हैं तो हम पारदर्शी व्यू के माध्यम से मेनू को प्रकट करने के लिए वापस स्क्रॉल करते हैं।

यहाँ कोड है, और लॉन्च गतिविधि में नीचे दो बटन (जिसे HorzScrollWithListMenu और HorzScrollWithImageMenu कहा जाता है) सबसे अच्छा मेनू दिखाते हैं जो मैं साथ आ सकता था:

Android स्लाइडिंग मेनू डेमो

एमुलेटर से स्क्रीनशॉट (मध्य-स्क्रॉल):

एमुलेटर से स्क्रीनशॉट (मध्य-स्क्रॉल)

डिवाइस से स्क्रीनशॉट (पूर्ण-स्क्रॉल)। ध्यान दें मेरा आइकन फेसबुक मेनू आइकन जितना विस्तृत नहीं है, इसलिए मेनू दृश्य और 'ऐप' दृश्य संरेखित नहीं हैं।

डिवाइस से स्क्रीनशॉट (पूर्ण-स्क्रॉल)


1
@AmokraneChentir आप getDrawingCache()अपनी गैर-मेनू गतिविधियों में कॉल करके और बिटमैप से एक ImageView बनाकर विभिन्न गतिविधियों का उपयोग कर सकते हैं । फिर फोन startActivity(intent)और overridePendingTransition(0, 0)पर onClickकरने की विधि ClickListenerForScrollingवर्ग तुरंत नए सक्रियता दिखाई और वांछित प्रभाव प्राप्त करने के लिए।
सिकला.फ

1
मुझे आश्चर्य है कि यदि कस्टम क्षैतिज क्षैतिज सूची को सूची दृश्य के आधिकारिक दस्तावेज़ के साथ उपयोग कर सकते हैं क्योंकि यह उल्लेख किया गया है कि यह सूची दृश्य को अपने संपूर्ण आइटम प्रदर्शित करने के लिए मजबूर करेगा।
shiami

1
यह कांटा टुकड़ों का उपयोग किए बिना सक्रियण स्विच करता है!
एरिक बी

1
आपकी मदद के लिए धन्यवाद, मैं HorzScrollWithListMenu.java का उपयोग करने में सक्षम था।
करेनएन्

2
आपका बहुत बहुत धन्यवाद @PaulGrime ... यह एक बहुत ही सरल उदाहरण है और सबसे भयानक बात इस डेमो में सरल है जिसे समझना और आसानी से अनुकूलित करना और उपयोग करने के लिए कोई लाइब्रेरी प्रोजेक्ट नहीं है।
नवीन कुमार

37

मैंने इस लाइब्रेरी प्रोजेक्ट में फेसबुक जैसा स्लाइडआउट नेविगेशन लागू किया है ।

आप इसे अपने एप्लिकेशन, अपने UI और नेविगेशन में आसानी से बना सकते हैं। आपको केवल एक गतिविधि और एक फ़्रैगमेंट लागू करने की आवश्यकता होगी, लाइब्रेरी को इसके बारे में बताएं - और लाइब्रेरी सभी वांछित एनिमेशन और नेविगेशन प्रदान करेगी।

रेपो के अंदर आप डेमो-प्रोजेक्ट पा सकते हैं, फेसबुक-जैसे नेविगेशन को लागू करने के लिए कैसे उपयोग करें। यहां डेमो प्रोजेक्ट के रिकॉर्ड के साथ लघु वीडियो है

इसके अलावा यह लीवर इस एक्शनबेर पैटर्न के अनुकूल होना चाहिए, क्योंकि यह एक्टिविटी ट्रांजेक्शन और ट्रांसलेक्शन (फ्रैगमेंट ट्रांजेक्शन और कस्टम व्यू नहीं) पर आधारित है।

अभी, सबसे अधिक समस्या इसे आवेदन के लिए अच्छी तरह से काम करने की है, जो पोर्ट्रेट और लैंडस्केप मोड दोनों का समर्थन करते हैं। यदि आपके पास कोई प्रतिक्रिया है, तो कृपया इसे गीथूब के माध्यम से प्रदान करें।

सभी का सबसे अच्छा,
एलेक्स


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

3
धन्यवाद प्रिय korovyansk, यह बहुत अच्छा है। लेकिन निरपेक्ष लेआउट नए OSs में पदावनत है। क्या आप इसे फिर से कोड कर सकते हैं?
हेसाम

धन्यवाद हर कोई जो github में या यहाँ प्रतिक्रिया देता है। मुझे कुछ बग्स के बारे में पता है और विचार हैं कि ऐप को कैसे बेहतर बनाया जाए। मैं इसे बनाता हूं, जब मेरे पास खाली समय होगा।
एलेक्सकोरोव्स्की

हाय कोरोयस्क। मैं आपके पुस्तकालय का उपयोग कर रहा हूँ यह अच्छी तरह से काम करता है। लेकिन मुझे थोड़ी समस्या है। जब स्लाइड बार सूची खुली, मैं सूची आइटम क्लिक पर गतिविधि शुरू कर रहा हूं। सक्रियता सही है लेकिन स्लाइड-इन एनीमेशन काम नहीं करता है। कोड((MenuActivity) getActivity()).getSlideoutHelper().close(); startActivity(new Intent(getActivity(), MyActivity.class) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).putExtra("category", position));
सनी

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

24

यहाँ एक और व्याख्या है और मेरी राय में सबसे अच्छी लगती है। मैंने इसे नहीं लिखा ।।

अपडेट करें:

यह कोड मेरे लिए सबसे अच्छा काम करता है और यह पूरे एक्शनबार को G + ऐप के समान बनाता है।

Google ने इसे कैसे प्रबंधित किया? Android अनुप्रयोग में ActionBar स्लाइड


7
मैंने इस लाइब्रेरी को लिखा, खुशी है कि आप इसे पसंद करेंगे। यह वास्तव में अभी के लिए बुनियादी है, लेकिन मैं आने वाले हफ्तों में इसमें सुधार करूंगा। अन्य लोगों के लिए इससे अधिक बदलाव करने के लिए आपका स्वागत है।
डेविड स्कॉट

यह पुस्तकालय बिल्कुल अद्भुत है। यह उपयोग करने के लिए बहुत सरल है और पूरी तरह से काम करता है। धन्यवाद। मैं केवल यह जोड़ना चाहूंगा कि नमूना केवल आईसीएस (और हनीकॉम्ब मुझे लगता है) के साथ काम करता है .. लेकिन पुस्तकालय सभी तरह से 2.1 पर वापस काम करता है, मैं इसका उपयोग कर रहा हूं कोई समस्या नहीं है।
स्टीवन इलियट

बुरा नहीं है, यह बहुत आसान है, लेकिन अच्छी तरह से काम करता है और सेटअप वास्तव में जल्दी है। हालांकि, यह लाइब्रेरी के बाहर से बहुत विन्यास योग्य नहीं है: सभी वस्तुओं में एक ही सरल लेआउट है, और चलते समय गतिशील लिस्टिंग की कोई संभावना नहीं है; दोनों चीजें अनुकूलित करना आसान होगा लेकिन मुझे वास्तव में सूची के अंदर समूह बनाने की आवश्यकता है और यह इतना आसान नहीं होगा।
htafoya

22

मुझे लगता है कि फेसबुक ऐप मूल कोड (देशी कोड से मेरा मतलब है, एंड्रॉइड में लेआउट का उपयोग करके) में नहीं लिखा गया है, लेकिन उन्होंने इसके लिए वेबव्यू का इस्तेमाल किया है और कुछ जावास्क्रिप्ट यूआई लाइब्रेरी जैसे सेंका का इस्तेमाल किया है । इसे सांचे ढांचे का उपयोग करके आसानी से प्राप्त किया जा सकता है।

यहां छवि विवरण दर्ज करें


16
+1 यूआई बिना ऐप अपडेट के बदल सकता है, इसलिए यह निश्चित रूप से एक वेब ऐप है और एंड्रॉइड ऐप मूल रूप से एक वेब ब्राउज़र है।
रूडी

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

2
मुझे नहीं लगता कि facebook ऐप एक वेबप है। बहुत तेज, तेज। मैं ऐसे वेब / हाइब्रिड ऐप जानता हूं जो "देशी की तरह" अच्छे लगते हैं, लेकिन देशी की तुलना में अभी भी कुछ कम है। केवल कंकाल ही नहीं - सूचियाँ, मानचित्र इत्यादि देशी लगते हैं और महसूस करते हैं। कम से कम प्रौद्योगिकी की वर्तमान स्थिति के साथ।
आईके

ठीक है, किसी ने मुझे बताया कि यह ऐप लगभग 2 महीने से ऐसा नहीं था - इसलिए आप एक पुराने संस्करण का उल्लेख कर रहे हैं जो मुझे नहीं पता है। वैसे भी यह टिप्पणी करना जानकारीपूर्ण हो सकता है कि वर्तमान ऐप निश्चित रूप से देशी है।
Ixx

20

यहाँ अभी तक एक और (बहुत अच्छा) खुला स्रोत पुस्तकालय है!

इस बारे में एक अच्छी बात यह है कि यह आसानी से ActionBarSherlock के साथ एकीकृत है।

यहाँ github प्रोजेक्ट लिंक दिया गया है

यहां Google Play डाउनलोड लिंक दिया गया है


2
मुझे लगता है कि यह सबसे अच्छा है
हर्ष एमवी

17

मैंने अपने प्रोजेक्ट के लिए बस इसी तरह का दृश्य लागू किया है। आप इसे यहाँ देख सकते हैं

यहाँ मेरे द्वारा लिखे गए पुस्तकालय के आधार पर नमूना आवेदन की स्क्रीन है: ActionsContentView उदाहरण

XML लेआउट के तत्व के रूप में इस कस्टम दृश्य का उपयोग करना आसान है। यहाँ उदाहरण है:

    <shared.ui.actionscontentview.ActionsContentView
      android:id="@+id/content"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:actions_layout="@layout/actions"
      app:content_layout="@layout/content" />

मुझे आपके द्वारा ActionsContentView पुस्तकालय के उपयोग के बारे में कोई प्रश्न होगा मैं परियोजनाओं विकी पर एक छोटा सा लेख लिख सकता हूं।

इस लाइब्रेरी के कुछ फायदे:

  • स्पर्श द्वारा दृश्य स्लाइड करने की क्षमता
  • एक्सएमएल में एक्शन बार के आकार को समायोजित करना आसान है
  • 2.0 और ऊपर से शुरू होने वाले सभी एंड्रॉइड एसडीके संस्करण का समर्थन

एक सीमा है:

  • सभी क्षैतिज स्क्रॉलिंग दृश्य इस दृश्य की सीमा में काम नहीं करेंगे

सबसे अच्छा संबंध है, स्टीवन


frist UI सेट करने के लिए कैसे अपने अपलोड तस्वीर के रूप में है? मैं यह परीक्षण करता हूँ frist UI स्क्रीन पर webView है। मुझे उम्मीद है कि ऐप शुरू होने पर लिस्टव्यू दिखाया जाएगा। आपके परिश्रम के माध्यम से 2.0 है, लेकिन आपका डेमो 4.0 है, मुझे आशा है कि आप 2.0 का भी उपयोग कर सकते हैं। कूल है
पेंग्वेंग

@ पेंगवांग: मैंने इस सुविधा का समर्थन करने के लिए कुछ कोड को धकेल दिया है। आप यह कर सकते हैं जबकि Activity.onResume () viewActionsContentView.showActions () पर कॉल करके;
असभ्य

क्या छिपे हुए हिस्से पर स्पर्श घटनाओं को अक्षम करना संभव है? उदाहरण के लिए, जब दाहिना भाग सक्रिय होता है तो दाईं ओर के सभी दृश्य अक्षम हो जाते हैं।
वलेरी

सामग्री लेआउट को अवरुद्ध करने की संभावना है जबकि कार्रवाई एक दिखाई गई है। मैंने आपको एक नमूना परियोजना ईमेल की है।
असभ्य

16

एंड्रॉइड सपोर्ट पैकेज 13 संशोधन (मई 2013) के साथ, एक नेविगेशन ड्रॉअर बनाने के लिए ड्रॉयरलैट है जिसे खिड़की के किनारे से खींचा जा सकता है। और, नेविगेशन ड्रावर अब एक डिज़ाइन पैटर्न है।

v4 समर्थन पुस्तकालय

नेविगेशन दराज डिजाइन पैटर्न


2
हां, न्यूनतम एपीआई स्तर समर्थित है 4.
वूबा ली

1
और संगतता पुस्तकालय आपको पुराने उपकरणों पर इसका उपयोग करने देता है। मैंने जिंजरब्रेड के लिए और बाद में एक विकसित किया।
टोनी मारो

2
इसके लिए सबसे ऊपर रहने की जरूरत है। अन्य उत्तरों में बहुत अधिक थर्ड पार्टी लाइब्रेरी हैं।
जेसन एक्सलसन

15

एक मौजूदा कार्यान्वयन का एक राउंडअप किया और इसे एक लाइब्रेरी प्रोजेक्ट प्लस उदाहरण ऐप में बदल दिया। एक्सएमएल पार्सिंग के साथ-साथ संभवतः वर्तमान एक्शनबार के ऑटोडेटेक्शन को भी जोड़ा गया है, इसलिए यह देशी के साथ-साथ एक्शनबेरलॉक जैसे समर्थन एक्शन बार के साथ काम करता है।

यह भी कार्रवाई बार दूर स्लाइड!

पूरी बात एक लाइब्रेरी प्रोजेक्ट है जिसमें एक उदाहरण ऐप है और इसे Google और फेसबुक ऐप जैसे एंड्रॉइड के लिए ए स्लाइडिंग मेनू में वर्णित किया गया है । प्रारंभिक विचार और कोड के लिए scirocco के लिए धन्यवाद !

जिंजरब्रेड पर SlideMenu ActionBar के साथ ICS पर SlideMenu


10

यह सरल और सुरुचिपूर्ण है: https://github.com/akotoe/android-slide-out-menu.git

स्नैपशॉट:

यहां छवि विवरण दर्ज करें


क्या आप मेरी मदद कर सकते हैं?? स्लाइडर से संबंधित प्रश्न .. यहाँ लिंक stackoverflow.com/questions/14500927/…
moDev

क्या यह आपको स्पर्श करके स्लाइड करने देता है? (औसत स्वाइप)
एल्किनब्यूट

@ मैं आपके नमूने के साथ काम कर रहा हूं, मुझे लगता है कि यह महान और प्रयोग करने में आसान है, लेकिन एक समस्या तब आई, जब स्क्रीन को घुमाते हुए (मैं एंड्रॉइड का उपयोग कर रहा हूं: configChanges = "अभिविन्यास" एंड्रॉइड 3.1 के साथ प्रकट में क्योंकि मैं नहीं करता हूं चाहते हैं कि गतिविधि फिर से शुरू हो जाए) स्क्रीन ठीक घूमती है लेकिन फ्रैमलैयूट अपना आकार बनाए रखता है और यह अच्छा नहीं लगता है, क्या आपके पास इसके आसपास कोई रास्ता है? मैंने सब कुछ करने की कोशिश की है लेकिन इसे ठीक नहीं कर सकता। धन्यवाद
zvzej

@ यहाँ अपने नमूने का उपयोग कर मेरा सवाल है, कृपया मेरी मदद करें या मुझे कुछ सलाह दें धन्यवाद। stackoverflow.com/questions/16778911/…
zvzej

10

मुझे लगता है कि पुस्तकालय का उल्लेख नहीं है:

jfeinstein10 / SlidingMenu

github url:https://github.com/jfeinstein10/SlidingMenu

  • एक्शन बार के साथ ठीक काम करता है ActionBarSherlock जो पिछड़े संगतता में मदद करता है !
  • समर्थन सही स्लाइड और न केवल बटन के माध्यम से स्लाइड!

8

अभी तक @Paul Grime द्वारा दिए गए उत्तर पर कोई टिप्पणी नहीं कर सकता, वैसे भी मैंने उनके github प्रोजेक्ट पर फ़्लिकर के लिए फ़िक्स को प्रस्तुत किया है ...।

मैं यहाँ फिक्स पोस्ट करूँगा, शायद किसी को इसकी आवश्यकता हो। आपको कोड की दो लाइनें जोड़ने की जरूरत है। पहले एक के नीचे anim.setAnimationListener कॉल:

anim.setFillAfter(true);

और app.layout () कॉल के बाद दूसरा एक:

app.clearAnimation();

उम्मीद है की यह मदद करेगा :)


6

मैंने इसे AbsoluteLayout और एक साधारण स्लाइड कंट्रोलर के साथ कार्यान्वित किया है जो देखने के लिए नकारात्मक ऑफसेट को छिपाने के लिए ले जाता है।

अगर किसी को दिलचस्पी है, तो मैं कोड / लेआउट और पोस्ट को साफ कर सकता हूं। मुझे पता है कि AbsoluteLayout पदावनत है, लेकिन यह एक बहुत ही सीधे आगे कार्यान्वयन था। लेफ्ट व्यू / राइट व्यू, और जब "स्लाइडिंग ओपन", बस बाएं दृश्य को एएक्स ऑफसेट से डिवाइस की चौड़ाई पर ले जाएं - जो भी आप राइट व्यू दिखाना चाहते हैं


यदि आप इसे बिना निरपेक्षता के साथ कर सकते हैं, तो मैं स्पष्ट हूँ! धन्यवाद!
इगोर


3

मेरे एंड्रॉइड कॉमन लाइब्रेरी (एसीएल) के एक हिस्से के रूप में मैंने खुद का साइडबार लागू किया। मुख्य लाभ:

  1. साइड बार को किसी भी स्थिति पर सेट किया जा सकता है: बाएं, ऊपर, नीचे, दाएं
  2. मुख्य दृश्य और स्लाइडिंग दृश्य दोनों क्लिक करने योग्य हैं
  3. साइड बार को आंशिक रूप से दिखाया जा सकता है
  4. साइडबार के लिए स्टाइलेबल विशेषताएँ इसे स्टाइल बदलने के लिए आसान बनाती हैं
  5. मावेन रेपो में कलाकारी
  6. एक बड़े पुस्तकालय का हिस्सा

स्रोत कोड: https://github.com/sero/android-common/tree/master/views/src/main/java/org/solovyev/android/view/sidebar

उपयोग: https://github.com/sero/android-common/blob/master/samples/res/layout/acl_view_layout.xml


3

हाल ही में मैंने अपने स्लाइडिंग मेनू कार्यान्वयन संस्करण पर काम किया है। यह लोकप्रिय J.Feinstein Android लाइब्रेरी SlidingMenu का उपयोग करता है।

कृपया GitHub पर स्रोत कोड देखें:

https://github.com/baruckis/Android-SlidingMenuImplementation

डाउनलोड करने के लिए डिवाइस पर सीधे ऐप डाउनलोड करें:

https://play.google.com/store/apps/details?id=com.baruckis.SlidingMenuImplementation

टिप्पणियों के कारण कोड स्व-व्याख्यात्मक होना चाहिए। मुझे आशा है कि यह मददगार होगा! ;)


3

मुझे इसके और इसके काम करने का एक सरल तरीका मिला। सरल नैविगेशन ड्रॉअर का उपयोग करें और आहरण करें। setsetLerner () और नीचे दिए गए ड्राअरस्लाइड मेथड में mainView.setX () विधि का उपयोग करें या मेरे कोड की प्रतिलिपि बनाएँ।

xml फ़ाइल

 <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"
android:background="#000000" >

<RelativeLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff">

  <ImageView
      android:layout_width="40dp"
      android:layout_height="40dp"
      android:id="@+id/menu"
      android:layout_alignParentTop="true"
      android:layout_alignParentLeft="true"
      android:layout_marginTop="10dp"
      android:layout_marginLeft="10dp"
      android:src="@drawable/black_line"
      />
</RelativeLayout>


<RelativeLayout
    android:id="@+id/left_drawer"
    android:layout_width="200dp"
    android:background="#181D21"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    >
    </RelativeLayout>
 </android.support.v4.widget.DrawerLayout>

जावा फ़ाइल

   public class MainActivity extends AppCompatActivity {
DrawerLayout drawerLayout;
RelativeLayout mainView;
ImageView menu;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    menu=(ImageView)findViewById(R.id.menu);
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mainView=(RelativeLayout)findViewById(R.id.content_frame);

    menu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            drawerLayout.openDrawer(Gravity.LEFT);
        }
    });

    drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
        @Override
        public void onDrawerSlide(View drawerView, float slideOffset) {
            mainView.setX(slideOffset * 300);
        }

        @Override
        public void onDrawerOpened(View drawerView) {

        }

        @Override
        public void onDrawerClosed(View drawerView) {

        }

        @Override
        public void onDrawerStateChanged(int newState) {

        }
    });
 }
}

यहां छवि विवरण दर्ज करें

धन्यवाद


2

मैं यहाँ कुछ बोल्ड अनुमान लगाने जा रहा हूँ ...

मुझे लगता है कि उनके पास एक लेआउट है जो मेनू का प्रतिनिधित्व करता है जो दिखाई नहीं देता है। जब मेनू बटन टैप किया जाता है, तो वे रास्ते से हटने के लिए शीर्ष पर लेआउट / दृश्य को चेतन करते हैं, और बस मेनू लेआउट की दृश्यता को सक्षम करते हैं। मैंने इसके बारे में किसी भी तरह के z- इंडेक्स के मुद्दों पर विचार नहीं किया है, या वे इसे कैसे नियंत्रित करते हैं।


यदि आपने एप्लिकेशन का उपयोग किया है .. तो आप वास्तव में यह देख सकते हैं कि लेआउट मेनू अनुभाग में दाईं ओर जाने के लिए स्लाइड करता है। मैं कोशिश करूँगा और एक वीडियो बनाऊंगा और उसे अपलोड करूँगा।
हर्षा एमवी

1
मैं iPhone संस्करण का उपयोग करता हूं, अगर एंड्रॉइड संस्करण समान है, तो मुझे संदेह है कि यह मेरे द्वारा वर्णित से बहुत अलग है। मैंने एंड्रॉइड पर कई एनिमेशन नहीं लिखे हैं, इसलिए मैं आपको यह नहीं बता सकता कि एनीमेशन कोड कैसा दिखता है, लेकिन मोटे शब्दों में, मुझे लगता है कि मैंने इसका वर्णन किया है।
jlindenbaum

धन्यवाद, youtube.com/watch?v=ANLMaL7zn20 क्या यह iPhone पर समान प्रभाव है।
हर्षा एमवी


2

यहाँ आधिकारिक Android प्रलेखन में पाया गया डिज़ाइन और विकास मार्गदर्शिका है जो अनौपचारिक बाहरी पुस्तकालय को जोड़ने की आवश्यकता नहीं है। केवल एंड्रॉइड सपोर्ट लाइब्रेरी करेगी। लिंक यहाँ खोजें।

डिजाइन और विकास


1

फेसबुक एंड्रॉइड ऐप संभवतः फ़्रैगमेंट्स के साथ निर्मित होता है । मेनू एक फ्रैगमेंट है, इन-डेप्थ एक्टिविटी (न्यूजफीड / इवेंट्स / फ्रेंड्स आदि) अन्य फ्रैगमेंट है। मूल रूप से एक टैबलेट एक फोन पर 'मास्टर और विस्तार' लेआउट।


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

1

जानकारी के लिए, जैसा कि संगतता लाइब्रेरी 1.6 से शुरू होती है और यह फ़ेसबुक ऐप एंड्रॉइड 1.5 के साथ उपकरणों पर भी चल रहा है, यह फ्रेगमेंट के साथ नहीं किया जा सकता है।

जिस तरह से आप यह कर सकते हैं, वह यह है: एक "आधार" गतिविधि बेसमेन्यूएक्टिविटी बनाएं जहां आप अपने मेनू सूची के लिए onItemClickListener के लिए सभी तर्क देते हैं और 2 एनीमेशन ("खुला" और "करीब") को परिभाषित करते हैं। एनिमेशन के अंत / शुरुआत में, आप BaseMenuActivity के लेआउट को दिखाते / छिपाते हैं (इसे menu_layout कहते हैं)। इस गतिविधि के लिए लेआउट सरल है, इसकी केवल एक सूची है जिसमें आइटम + आपकी सूची के दाईं ओर एक पारदर्शी भाग है। यह हिस्सा क्लिक करने योग्य होगा और इसकी चौड़ाई आपके "मूव बटन" जैसी ही होगी। इसके साथ, आप इस लेआउट पर क्लिक करके एनीमेशन को शुरू करने में सक्षम होंगे ताकि content_layout को बाईं ओर स्लाइड किया जा सके और पूरी स्क्रीन ली जा सके। प्रत्येक विकल्प (यानी मेनू सूची का आइटम) के लिए, आप एक "ContentActivity" बनाते हैं जो BaseMenuActivity को विस्तारित करता है। फिर जब आप सूची के एक आइटम पर क्लिक करते हैं, तो आप मेनू दिखाई देने वाले (जो आप अपनी गतिविधि शुरू होते ही बंद कर देंगे) के साथ अपना ItemSelectedContentActivity शुरू करते हैं। प्रत्येक ContentActivity के लिए लेआउट फ़्रेमलैटआउट हैं और इसमें और शामिल हैं। आपको बस content_layout को स्थानांतरित करना होगा और जब आप चाहते हैं menu_layout दिखाई देगा।

यह करने का एक तरीका है, और मुझे आशा है कि मैं पर्याप्त स्पष्ट हो गया हूं।


1

मैं पिछले कुछ दिनों से इसके साथ खेल रहा हूं और मैं एक ऐसा समाधान लेकर आया हूं जो अंत में काफी सीधा है, और जो पूर्व-हनीबेल का काम करता है। मेरा समाधान उस दृश्य को चेतन करने के लिए था जिसे मैं ( FrameLayoutमेरे लिए) स्लाइड करना चाहता हूं और एनीमेशन के अंत के लिए सुनना चाहता हूं (जिस पर व्यू के बाएं / दाएं स्थान को ऑफसेट करने के लिए)। मैंने यहां अपना समाधान चिपकाया है: एक दृश्य के अनुवाद को कैसे चेतन करें


1

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

XML के बिना जावा कोड का उपयोग करके साइड मेनू बार का कार्यान्वयन


1

मैंने उपरोक्त उत्तर में कहीं भी आश्चर्यजनक सिमोनटीवी / एंड्रॉइड-मेनुद्रावेर का उल्लेख नहीं किया। तो यहाँ एक लिंक है

https://github.com/SimonVT/android-menudrawer

इसका सुपर आसान उपयोग है और आप इसे बाएँ, दाएँ, ऊपर या नीचे रख सकते हैं। नमूना कोड और अपाचे 2.0 लाइसेंस के साथ बहुत अच्छी तरह से प्रलेखित।


0

जून 2012 में, Google ने ग्रहण एडीटी प्लगइन में "टेम्प्लेट" जोड़े हैं , और "मास्टर / डिटेल फ्लो" नामक एक टेम्प्लेट है, जो वास्तव में ऐसा करता है (सुगंध के आधार पर)


1
प्रश्न में मास्टर / डिटेल फ्लो एक साइडबार मेनू नहीं है। यह (टैबलेट) या अलग से (फोन) एक साथ प्रदर्शित किए गए दो टुकड़े हैं।
टामैश

खैर, जून 2013 में, नेविगेशन ड्रॉअर लेआउट जोड़ा गया है, जो कि यहां की जरूरत के समान है, फिर भी एक्शनबार दराज के साथ स्लाइड नहीं करेगा क्योंकि फेसबुक स्टाइल स्लाइडर बार की यहां आवश्यकता है।
खुलजा सिम सिम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.