2015-11-27 18 views
31

पर प्रोग्रामेटिक रूप से टूलबार को छुपाएं/दिखाएं जब मैं अपना RecycleViewToolBar स्क्रॉल या एनीमेशन के साथ स्क्रॉल करता हूं। enter image description hereCoordinatorLayout

मैं प्रोग्रामिंग के बाद ToolBar कैसे वापस कर सकता हूं?

उत्तर

73

यदि आपकी टूलबार ऐपबारलाउट के अंदर है जो शायद आपके कोऑर्डिनेटर के अंदर है तो इस तरह कुछ ऐसा काम करना चाहिए।

AppBarLayout appBarLayout = (AppBarLayout)findViewById(R.id.appBar); 
      appBarLayout.setExpanded(true, true); 

या संक्षिप्त करने के लिए यह

AppBarLayout appBarLayout = (AppBarLayout)findViewById(R.id.appBar); 
      appBarLayout.setExpanded(false, true); 

यहाँ परिभाषा

setExpanded(boolean expanded, boolean animate) 

लें टिप्पणी है कि इस विधि समर्थन पुस्तकालय की v23 से उपलब्ध है, यहाँ, संदर्भ के लिए कुछ documentation है नोट करने की मुख्य बात यह है कि "ऐपबारलाउट की स्क्रॉलिंग के साथ, यह विधि इस लेआउट पर कोऑर्डिनेटरलाइट के प्रत्यक्ष बच्चे होने पर निर्भर करती है। "उम्मीद है कि यह मदद करता है!

+0

अद्भुत उत्तर, सभी काम, धन्यवाद !!! – Artem

7

क्या आप यही देख रहे हैं?

Toolbar toolbar = findViewById(R.id.toolbar); // or however you need to do it for your code 
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams(); 
params.setScrollFlags(0); // clear all scroll flags 

लिंक: How to enable/disable toolbar scrolling programmatically when using design support library

आदेश टूलबार को छिपाने के लिए अपनी बस कुछ इस तरह कर सकते हैं:

toolbar.animate().translationY(-toolbar.getBottom()).setInterpolator(new AccelerateInterpolator()).start(); 

आप इसे फिर से दिखाना चाहते हैं तो आप कॉल:

toolbar.animate().translationY(0).setInterpolator(new DecelerateInterpolator()).start(); 
+1

@ johnarao07 हाय आदमी! उत्तर के लिए धन्यवाद लेकिन यह मेरे लिए काम नहीं करता है। और यह समाधान टूलबार के लिए छुपा/दिखा रहा है। मैं सिर्फ – Artem

+0

हाय ब्रो अक्षम करने के बिना दिखा/छुपा चाहता हूं !! उत्तर अपडेट किया !! – johnrao07

+1

@ johnarao07 aa, काम नहीं करता है (( – Artem

0

मेरी समस्या @Artem के समान ही थी, मैंने कई फिक्स करने की कोशिश की लेकिन उनमें से कोई भी मेरे लिए काम नहीं करता था। जब आप AppBarLayout का उपयोग करते हैं तो @ Jraco11 का उत्तर सही है। @ johnrao07 मेरे लिए काम नहीं किया। लेकिन जब हम Toolbar का उपयोग करते हैं तो मुझे इस समस्या का एक सही समाधान मिला।

टूलबार को छुपाने के लिए प्रोग्राम के

if (toolbar.getParent() instanceof AppBarLayout){ 
        ((AppBarLayout)toolbar.getParent()).setExpanded(false,true); 
       } 

दिखाने के लिए टूलबार प्रोग्राम के

if (toolbar.getParent() instanceof AppBarLayout){ 
         ((AppBarLayout)toolbar.getParent()).setExpanded(true,true); 

मूल जवाब (@Android HHT द्वारा जवाब) का संदर्भ लें: - programmatically-show-toolbar-after-hidden-by-scrolling-android-design-library

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