Android 动态构建布局:ConstraintLayout还是Anko布局?
我正在做一个项目,需要动态创建所有布局。代码很难看,我正在寻找替代方案 你是这样做的好选择吗?显然,它仍然是一个测试版,这让我有点担心 我还发现了Anko布局,但我不确定它是否适合复杂的布局。我想,这也需要更多的时间来适应Android 动态构建布局:ConstraintLayout还是Anko布局?,android,android-layout,android-constraintlayout,anko,Android,Android Layout,Android Constraintlayout,Anko,我正在做一个项目,需要动态创建所有布局。代码很难看,我正在寻找替代方案 你是这样做的好选择吗?显然,它仍然是一个测试版,这让我有点担心 我还发现了Anko布局,但我不确定它是否适合复杂的布局。我想,这也需要更多的时间来适应 动态构建布局还有其他好的选择吗?我的建议是使用Anko而不是Constraint layout,因为Constraint layout只是强大的相对布局,所以动态添加约束可能会产生问题,而且动态创建布局也不被认为是好的方法,因为它的性能 我们可以在这里利用Anko,因为它是为
动态构建布局还有其他好的选择吗?我的建议是使用Anko而不是Constraint layout,因为Constraint layout只是强大的相对布局,所以动态添加约束可能会产生问题,而且动态创建布局也不被认为是好的方法,因为它的性能 我们可以在这里利用Anko,因为它是为解决上述问题而设计的。所以从官方的安科文件 Anko Layouts是用于编写动态Android布局的DSL。这是一个 使用Anko DSL编写的简单用户界面: 上面的代码在LinearLayout中创建一个按钮,并将OnClickListener附加到该按钮。此外,onClick接受 一个挂起lambda,这样您就可以在里面编写异步代码了 听众 请注意,这是完整的布局代码。不需要XML
因此,您可以轻松地将业务逻辑集成到Anko中我的建议是使用Anko而不是约束布局,因为约束布局只是强大的相对布局,所以动态添加约束可能会产生问题,而且动态创建布局也不被认为是好方法,因为它的性能 我们可以在这里利用Anko,因为它是为解决上述问题而设计的。所以从官方的安科文件 Anko Layouts是用于编写动态Android布局的DSL。这是一个 使用Anko DSL编写的简单用户界面: 上面的代码在LinearLayout中创建一个按钮,并将OnClickListener附加到该按钮。此外,onClick接受 一个挂起lambda,这样您就可以在里面编写异步代码了 听众 请注意,这是完整的布局代码。不需要XML 因此,您可以轻松地将您的业务逻辑集成到Anko中, 我不知道什么类型的应用程序更好,你们可以尝试json结构设计并转换成动态布局。首先根据所需的小部件结构创建json,例如下面的示例 然后我们在gitHub中有很多json到android视图转换库。有些链接是, 这个想法的最大优点之一是,在将应用程序上传到live之后,您可以通过从后端更新json动态更改设计。嗨,Moyo, 我不知道什么类型的应用程序更好,你们可以尝试json结构设计并转换成动态布局。首先根据所需的小部件结构创建json,例如下面的示例 然后我们在gitHub中有很多json到android视图转换库。有些链接是, 这个想法的最大优点之一是,在将应用程序上传到live之后,您可以通过从后端更新json动态更改设计。“而不是约束布局”?如果Anko支持约束布局,那么没有理由不能将它们一起使用“而不是约束布局”?如果Anko支持约束布局,那么就没有理由不能同时使用它们
verticalLayout {
val name = editText()
button("Say Hello") {
onClick { toast("Hello, ${name.text}!") }
} }
{
"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}"
}]
}