مقالات باگتو

آموزش 2.0 ConstraintLayout در اندروید
آموزش 2.0 ConstraintLayout در اندروید

ConstraintLayoutیکی از محبوب ترین کتابخانه هایjetpackاست و همه ویژگی هایConstraintLayout 1.1را دارد که برای ساخت سریعlayoutهای پیچیده با ابزار یکپارچه شده باAndroid Studioبرای پیش نمایشXMLیا حتی ویرایشlayoutخود با آن آشنا هستید.

ConstraintLayout 2.0چندین ویژگی جدید را بهContraintLayoutاضافه کرده است. برای استفاده از آن ، نسخه را درbuild.gradleویرایش کنید.

implementation 'androidx.constraintlayout:constraintlayout:2.0.1'

 

ما همچنین یکrepositoryدرgithubبرایConstraintLayoutایجاد کرده ایم.

Flow

Flowیکvirtual layoutجدید برای building chain است که می تواند با کمبود فضا به خط بعدی یا حتی قسمت دیگری از صفحه بپیوندد. هنگامی که چندین مورد را به صورت زنجیره ای بیرون می کشید بسیار مفید است اما مطمئن نیستید که در زمان اجراcontainerبزرگ باشد. می توانید از این روش برای ایجاد طرح بندی خود بر اساس اندازه پویا در برنامه خود مانند عرض صفحه هنگام چرخش استفاده کنید.

تصویر بالا: انیمیشنFlowرا نشان می دهد که چندین زنجیره را به عنوان عناصر بیش از حد از یک ردیف پر می کند.

Flowیکvirtual layoutاست.Virtual layoutها درConstraintlayout, virtual viewgroupها هستند که در Constraintlayoutاضافه میشوند، اماlevelرا بهhierarchyخود اضافه نکنید. در عوض ، آنها برای تکمیل طرح بهViewهای دیگر درContraintLayoutمراجعه می کنند.

تصویر بالا حالت هایflow را نمایش میدهد مانند: " none" ، " chain" ، " align"

شما با استفاده از تگFlowیکFlowرا درContraintLayout 2.0اضافه می کنید. FlowیکVirtualViewGroupدر اطرافViewها ایجاد می کند که شما درconstraint_referenced_idsمنتقل می کنید وViewهای ارجاع شده را به صورتchain(زنجیره ای) تنظیم می کند.

<androidx.constraintlayout.helper.widget.Flow
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:flow_wrapMode="chain"
    app:constraint_referenced_ids="card1, card2, card3"
            />

مثال استفاده ازFlowدرContraintLayout

یکی از مهمترین گزینه هایFlow،wrapModeاست که به شما امکان می دهد در هنگام سرریز شدن محتوا (یا بسته شدن) محتوا را پیکربندی کنید.

 

می توانید سه گزینه برایwrapModeمشخص کنید:

  • none- یکsingle chain(زنجیره واحد) ایجاد کنید ، اگر محتوا متناسب نباشد  سرریز خواهد شد
  • chain- درoverflow(سرریز) ، ایجاد یکchainدیگر برای عناصر سرریز.
  • Align(تراز کردن) - شبیه بهchain است اما تراز کردن ردیف ها به ستون ها

Layer(لایه)

یکhelperجدید استLayerبه شما امکان را می دهد از چندview یکvirtual layer )لایه مجازی(ایجاد کنید. برخلافFlow،viewها را مشخص نمی کند. در عوض  Layerبه شما امکان می دهد تغییرات را همزمان در چندینviewاعمال کنید.

اگر می خواهید انیمیشن هایی را برای چرخش ، ترجمه یا مقیاس بندی چندینviewبا هم ایجاد کنید ، مفید است.

 

 

در تصویر بالا تغییر شکلها را با استفاده از یکlayerدر چندینviewاعمال کردیم.

اندازه یکlayerدر طولlayoutاست و بر اساس تمامviewهایی که به آن ارجاع می شود سایز بندی می شود.

برای افزودن یکlayerدرContraintLayout 2.0 از تگLayerاستفاده کنید:

<androidx.constraintlayout.helper.widget.Layer
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:constraint_referenced_ids="card1, card2, card3"
            />

 

مثال بالا استفاده ازLayerدرContraintLayoutاست.

Motion Layout(لایه های متحرک)

MotionLayoutیکی از مهمترین ویژگیهای مورد انتظار درContraint Layout 2.0است.یک سیستم انیمیشن قدرتمند را برای هماهنگی انیمیشن ها از چندینviewفراهم می کند. MotionLayoutمبتنی برContraintLayoutاست و آن را گسترش می دهد تا به شما امکان حرکت بین چندین مجموعهconstraint(یاconstraintهای یک مجموعه) را بدهد. می توانید نحوه جابجایی ،scroll،scale،rotate،fadeیا حتی حرکتanimate customرا مشاهده کنید. همچنین می تواند حرکات مبتنی بر فیزیک را کنترل کند و سرعت انیمیشن ها را کنترل کند. انیمیشن های ساخته شده باMotionLayoutقابل جستجو و برگشت پذیر هستند. این بدان معناست که شما می توانید به هر نقطه از انیمیشن بروید ، یا حتی آن را به عقب برگردانید.

باIntegratedدرAndroid Studio،MotionEditorبه شما امکان ساخت ، پیش نمایش و ویرایش انیمیشن ها را با استفاده ازMotionLayoutمی دهد. این امر باعث می شود هنگام هماهنگی چندینviewجزئیات خوب یک انیمیشن را به راحتی تغییر دهید.

Motion Layoutیک ابزار انیمیشن عمومی است شما می توانید از آن برای ساخت تقریباً هر انیمیشن درAndroidاستفاده کنید. با این حال ، دو حالت وجود دارد کهMotion Layoutدر ساخت انیمیشن در مقایسه با گزینه های دیگر عالی عمل می کند.

  • Seekableanimations- انیمیشن هایی که توسط ورودی های دیگر هدایت می شوند ، مانند یک نوار ابزار در حالcollapsingکه بهscrollپاسخ می دهد.
  • Statetransitions- انیمیشن هایی که با تغییر وضعیت هدایت می شوند مانند ورود کاربر به صفحه.

 

سوالات و مشکلات خود را در قسمت کامنت ها مطرح کنید تا به آنها پاسخ دهیم.

تگ‌ها
اشتراک

0 نظرات

    ;