Android सामग्री डिज़ाइन-CollapsingToolbarLayout के ढहने के बाद टूलबार की पृष्ठभूमि का रंग कैसे बदलें




material-design android-collapsingtoolbarlayout (5)

उपयोगकर्ता द्वारा स्क्रीन को नीचे स्क्रॉल करने के बाद, CollapsingToolbarLayout में छवि गायब हो जाती है और पीछे बटन, सामग्री शीर्षक और सेटिंग्स मेनू के साथ टूलबार छोड़ दिया जाता है। मैं जानना चाहता हूं कि उस टूलबार की पृष्ठभूमि का रंग कैसे बदला जाए, जब उसकी 'ध्वस्त' अवस्था में हो।

मैं जिस कार्य का उल्लेख कर रहा हूं, वह इसके समान है जहां टूलबार की पृष्ठभूमि का रंग हरे रंग में बदल जाता है:

CollapsingToolbarLayout के नीचे, मेरे पास CardViews के साथ एक NestedScrollView है


आप एक AppBarLayout के ऑफसेट श्रोता का उपयोग कर सकते हैं और इच्छित व्यवहार के अनुसार CollapsingTollbar विशेषताओं को बदल सकते हैं।

appBarLayout.addOnOffsetChangedListener { _, verticalOffSet ->
            if (Math.abs(verticalOffSet) == appBarLayout.totalScrollRange) {
                //Collapsed
                toolBar.setBackgroundDrawable(ContextCompat.getDrawable(this,
                        R.drawable.last_revolut_gradient))
            } else {
                //Expanded
                toolBar.setBackgroundColor(ContextCompat.getColor(this,
                        android.R.color.transparent))
            }
        }

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.header);

    Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
        @SuppressWarnings("ResourceType")

        @Override
        public void onGenerated(Palette palette) {
            Palette.Swatch vibrant =
                    palette.getVibrantSwatch();

            if (vibrant != null) {

                collapsingToolbar.setBackgroundColor(getResources().getColor(R.color.cpb_blue));
                collapsingToolbar.setStatusBarScrimColor(getResources().getColor(R.color.cpb_blue));
                collapsingToolbar.setContentScrimColor(getResources().getColor(R.color.cpb_blue));

            }
        }

    });

शायद तुम जो देख रहे हो वह यह है:

myCollapsingToolbar.setContentScrimColor(getResources().getColor(R.color.my_color_id));

इसने मेरे लिए काम किया और एक बार एक छवि के मुख्य रंग को फिट करने में मेरी मदद करने के लिए इसे ढहने के बाद कोलेप्सटूलबार का रंग बदल दिया। इसके साथ, रंग स्पष्ट रूप से प्रोग्रामेटिक रूप से बदला जा सकता है!

मुझे पता है कि मुझे देर हो गई है, लेकिन मुझे उम्मीद है कि यह मदद कर सकता है।


मुझे लगता है कि आप app:contentScrim बाद हैं app:contentScrim

<android.support.design.widget.CollapsingToolbarLayout
    ...
    app:contentScrim="?attr/colorPrimary">
    <!-- Toolbar and ImageView here -->
</android.support.design.widget.CollapsingToolbarLayout>

बस CollapsingToolbarLayout XML विशेषता contentScrim का उपयोग करें Toolbar पृष्ठभूमि रंग को तब सेट करें जब यह collapsed मोड में हो।

app:contentScrim="YOUR_TOOLBAR_COLOR"

यहाँ एक उदाहरण है:

<android.support.design.widget.CollapsingToolbarLayout
    android:id="@+id/collapsing_toolbar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    app:contentScrim="?attr/colorPrimary"
    app:layout_scrollFlags="scroll|exitUntilCollapsed">

    <ImageView
        android:id="@+id/img_group_photo"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:scaleType="centerCrop"
        app:layout_collapseMode="parallax" />

    <android.support.v7.widget.Toolbar
        android:id="@+id/anim_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:layout_collapseMode="pin"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.CollapsingToolbarLayout>

आशा है कि यह मदद करेगा ~





android-collapsingtoolbarlayout