तो मैं एक कंटेनर में फैब परिवर्तन को लागू करने के लिए एक गाइड का पालन कर रहा हूँ। यह कोड था।

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <com.google.android.material.circularreveal.CircularRevealFrameLayout
        android:id="@+id/sheet"
        android:layout_gravity="bottom|center_horizontal"
        android:visibility="invisible"
        android:background="@color/secondaryColor"
        app:layout_behavior="com.google.android.material.transformation.FabTransformationSheetBehavior">
  
    </com.google.android.material.circularreveal.CircularRevealFrameLayout>
    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_gravity="bottom|end"
        />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

यह ठीक काम करता है लेकिन

फैबट्रांसफॉर्मेशनशीटव्यवहार

अब बहिष्कृत है। मैंने गुगल किया और इसके साथ आया

com.google.android.material.transition.MaterialContainerTransform

जिसे अब उसकी जगह इस्तेमाल किया जाना चाहिए। लेकिन जब मैं इसे बदलता हूं, तो मुझे एक लेआउट मुद्रास्फीति त्रुटि मिलती है।

व्यवहार उपवर्ग com.google.android.material.transition.MaterialContainerTransform को नहीं बढ़ा सका

1
Tanzim Chowdhury 10 सितंबर 2020, 01:21

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा लगता है कि MaterialContainerTransform का उपयोग layout_behavior विशेषता में नहीं किया जा सकता है।

आपको MaterialContainerTransform का एक उदाहरण बनाने और इसे कुछ मापदंडों के साथ आरंभ करने की आवश्यकता है।

यहाँ एक उदाहरण है जो मेरे मामले के लिए काम करता है:

MaterialContainerTransform transform = new MaterialContainerTransform();
        transform.setStartView(your FAB goes here);
        transform.setEndView(view which you are transitioning to);
        transform.setPathMotion(new MaterialArcMotion()); //optional
        transform.setScrimColor(Color.TRANSPARENT); //optional
        TransitionManager.beginDelayedTransition(container, transform);

इसके अतिरिक्त, इस दृष्टिकोण के साथ आपको वास्तव में इस तरह के लेआउट और विशिष्ट पदानुक्रम से चिपके रहने की आवश्यकता नहीं है।

यहां लिंक है जिसे आप अधिक जानने के लिए देख सकते हैं: https://material.io/develop/android/theming/motion

1
eXXXc1ted 1 अक्टूबर 2020, 04:27