proteus
v5.0.1
Proteus旨在成為 Android LayoutInflater
的直接替代品;但與 APK 中捆綁的已編譯 XML 佈局不同,Proteus 在運行時會擴展佈局。使用Proteus,您可以從後端控制您的應用程式佈局(無WebViews)。忘記findViewById
的樣板程式碼,將其轉換為TextView
,然後setText()
。 Proteus 具有運行時資料綁定和格式化程式。插入您自己的自訂視圖、屬性和函數,以根據您的要求調整 proteus。
// Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
google ( )
jcenter ( )
maven { url 'https://jitpack.io' }
}
}
// Add in your app level dependency
dependencies {
implementation 'com.github.flipkart-incubator.proteus:proteus-core:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:gson-adapter:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:cardview-v7:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:design:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:recyclerview-v7:5.0.1'
implementation 'com.github.flipkart-incubator.proteus:support-v4:5.0.1'
}
proteus中的佈局不是用XML
編寫,而是用JSON
描述,可用於在運行時擴充原生 Android UI。 JSON
佈局可以託管在任何地方(在裝置上、伺服器上等)。
佈局定義了視圖層次結構,就像 XML 一樣。
資料(可選)定義資料綁定。這些資料綁定類似於 Android 的資料綁定庫。
將layout
和data
提供給ProteusLayoutInflater
並傳回本機視圖層次結構。
觀看此影片以了解其實際效果。
{
"type" : "LinearLayout" ,
"orientation" : "vertical" ,
"padding" : "16dp" ,
"children" : [ {
"layout_width" : "200dp" ,
"gravity" : "center" ,
"type" : "TextView" ,
"text" : "@{user.profile.name}"
} , {
"type" : "HorizontalProgressBar" ,
"layout_width" : "200dp" ,
"layout_marginTop" : "8dp" ,
"max" : 6000 ,
"progress" : "@{user.profile.experience}"
} ]
}
{
"user" : {
"profile" : {
"name" : "John Doe" ,
"experience" : 4192
}
}
}
ProteusView view = proteusLayoutInflater . inflate (< layout >, < data >);
container . addView ( view . getAsView ());
演示應用程式將讓您體驗 proteus 並幫助您更好地了解內部結構。
npm start
準備修補
最簡單的貢獻方法是分叉儲存庫、進行更改並建立拉取請求。
阿帕契v2.0
如果您使用的是proteus,請檢查can、cannot 和must
您可以在此處查看貢獻者,但如果您想聯繫我們;只需發送郵件即可。
在 StackOverflow 上找到我們的 proteus。
下載適用於 Android Studio 的此外掛程式(測試版)。啟用後,您可以選擇任何 Android XML 資源文件,然後轉到“工具”>“Proteus”>“將 XML 轉換為 JSON”