MotionLayout 基礎教程 2

2021-10-11 07:24:15 字數 3106 閱讀 1028

本文是 《motionlayout 基礎教程》 的第2篇,主要向讀者介紹如何在motionscene檔案中定義場景約束以及如何使用自定義屬性。

可以在元素中使用子元素定義乙個場景約束集,並在元素中使用元素定義單個view的屬性約束。

:在motionscene檔案中定義end場景的約束集

<?xml version="1.0" encoding="utf-8"?>

複製**

實際上,你即可以把start場景的約束集定義在motionscene檔案中,也可以把end場景的約束集定義在motionscene檔案中。或者僅在motionscene檔案中定義這兩者之一,另乙個場景使用layout布局檔案定義。

建議:建議把start場景和end場景的約束集都定義在motionscene檔案中。因為motionlayout框架某些特性(例如自定義屬性(下節會介紹))依賴於motionscene檔案中start場景,如果start場景沒有定義在motionscene檔案中,這些特性可能會無法使用。

:在motionscene檔案中定義start場景約束與end場景約束(本示例分為以下兩步)

1. 建立布局檔案:

檔名:activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

提示:布局檔案還是要有的,並不是說將start

場景約束和end場景約束都定義在了motionscene檔案中就可以不需要布局檔案了。

布局檔案預覽:

2. 建立motionscene檔案:

檔名:activity_main_motion_scene.xml

<?xml version="1.0" encoding="utf-8"?>

複製**

元素屬性說明:元素屬性說明:

提示1
提示2
提示3
提示4
:【浮點值】在關聯的view上呼叫setprogress(float)方法(用於與巢狀的constraintlayout互動)

前面說過,元素用來定義單個view的屬性約束,它支援對view的所有constraintlayout屬性定義約束,以及對view的下面這些標準屬性定義約束:

view的標準屬性或者constraintlayout屬性發生改變時,motionlayout會自動應用過渡動畫。

motionlayout控制項只會檢測標準屬性和constraintlayout屬性這類布局相關的屬性變動,對於其他的屬性變動,如view的背景顏色變動是無法檢測出來的,因此就需要使用自定義屬性。

元素中使用子元素來指定自定義屬性。

例:

<?xml version="1.0" encoding="utf-8"?>

複製**

效果預覽:

元素屬性說明:

剩下的其他屬性都是用來設定自定義屬性的值的。需要根據自定義屬性的值型別使用以下xml屬性之一來設定自定義屬性的值::設定屬性的值(顏色型別)。

:設定屬性的值(顏色型別)。

:設定屬性的值(整數型別)。

:設定屬性的值(浮點型別)。

:設定屬性的值(字串型別)。

:設定屬性的值(尺寸型別)。

:設定屬性的值(尺寸型別)。

:設定屬性的值(布林型別)。

本篇文章是 《motionlayout 基礎教程》 的第2篇,閱讀完這兩篇文章後您基本就能掌握motionlayout的基礎內容了。

SwiftUI PDFOutline 基礎教程

pdfoutline物件樹狀層次結構,用於顯示pdf文件的結構的元件。class pdfoutline nsobject大綱是pdf文件的可選元件,可用於檢視文件的結構並在其中導航。大綱由文件的作者建立。如果使用大綱物件表示pdf文件大綱,則層次結構的根源是從pdf文件本身獲得的。該根輪廓是不可見的...

PHP安裝threads多執行緒擴充套件基礎教程

二 判斷php是ts還是nts版 通過phpinfo 檢視其中的 thread safety 項,這個專案就是檢視是否是執行緒安全,如果是 enabled,一般來說應該是ts版,否則是nts版。三 根據php ts nts版選擇對應pthreads的版本 五 安裝pthreads擴充套件 複製php...

Java DataInputStream教程書目錄

使用datainputstream從檔案讀取布林值 使用datainputstream從檔案讀取位元組陣列 使用datainputstream從檔案讀取位元組 使用datainputstream從檔案讀取char 使用datainputstream從檔案讀取雙倍 使用datainputstream從...