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”