7

मेरे पास एक ही गतिविधि एंड्रॉइड ऐप है जिसमें कई टुकड़े हैं। जब मैं एक सूची स्क्रीन दिखा रहा हूं, तो app:layout_scrollFlags="scroll|enterAlways" संपत्ति के साथ Toolbar का उपयोग करना चाहता हूं। और विस्तार खंड में मैं CollapsingToolbarLayout का उपयोग उसमें एक छवि के साथ करना चाहता हूं। चूंकि यह एक एकल गतिविधि ऐप है, मेरे पास केवल एक Toolbar है। क्या दोनों मामलों के अनुरूप प्रोग्रामेटिक रूप से मेरे लेआउट को संशोधित करना संभव है?बदलते टूलबार और CollapsingToolbarLayout स्क्रॉल झंडे प्रोग्रामेटिक रूप से

उत्तर

9

हां। मान लें कि आप CollapsingToolbarLayout खंड से टूलबार में जा रहे हैं।

  1. आप अपने AppBarLayout पतन AppBarLayout.setExpanded(false) उपयोग करते हुए;

  2. आप अपनी आवश्यकताओं के अनुसार स्क्रॉल ध्वज बदलते हैं।

    AppBarLayout.LayoutParams p = (AppBarLayout.LayoutParams) toolbar.getLayoutParams(); 
    p.setScrollFlags(...); 
    toolbar.setLayoutParams(p); 
    

    ही CollapsingToolbarLayout के लिए चला जाता है, यदि आवश्यक हो। मुझे लगता है कि यह होना चाहिए कुछ की तरह:

    collapsingToolbarParams.setScrollFlags(0); //no flags for ctl 
    toolbarParams.setScrollFlags(SCROLL_FLAG_SCROLL | SCROLL_FLAG_ENTER_ALWAYS); //new flags for toolbar 
    
+0

मैं भी इस समस्या थी। ऐसा लगता है कि मैं 'setLayoutParams()' विधि को कॉल करना भूल गया था। जवाब के लिए धन्यवाद! – Mauker

+1

setScrollFlags (0) ठीक काम करता है लेकिन जब मैं इसे इस पर सेट करने का प्रयास करता हूं: params.setScrollFlags (AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS | AppBarLayout.LayoutParams.SCROLL_FLAG_SNAP); // सभी स्क्रॉल झंडे साफ़ करें टूलबार.सेट लयआउट पैराम (पैराम्स); काम नहीं करता है .. – iBobb

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