gpt4 book ai didi

android - 重命名变量以使 XML id 更清晰

转载 作者:行者123 更新时间:2023-11-29 23:49:59 25 4
gpt4 key购买 nike

我一直想让代码更简洁,但我不会放弃。我是说……

为了在 XML 中命名 View 的 ID,我使用了这样的匈牙利符号:

<WHAT> <WHERE> <DESCRIPTION> <SIZE>

例如:tvExampleSectionEmptyBig , tvExampleSectionEmptySmall

以前,使用 Butter Knife 时,我没有编写太多代码,因为要进行绑定(bind),我做了这样的事情:

@BindView (R.id.tvExampleSectionEmptyBig) TextView tvEmptyBig;
@BindView (R.id.tvExampleSectionEmptySmall) TextView tvEmptySmall;

由于匈牙利符号用于避免不同 Activity 、 fragment 等中具有相同名称的 id 之间的冲突,因此代码更加清晰且可重用。它在实践中并不比在 XML 中更多。

这是怎么回事?

Kotlin 有 synthetic ,这让你的生活更轻松,因为有了 View 的 id,绑定(bind)是直接完成的,但是这么长的 id 代码很脏......此外,我使用的所有 View 都是有道理的在名为 ExampleSectionActivity 的 Activity 中,在其变量名称中包含 ExampleSection ?

我想要什么?

当然有更好的解决方案,但最初,我觉得是通过删除给定的 String 来实现重命名变量的方法。当我遵循所有 ID 名称的约定时,它在内部会是这样的:

val tvEmptyBig = tvExampleSectionEmptyBig
val tvEmptySmall = tvExampleSectionEmptySmall

当然,我想以自动化的方式进行。

另一方面,我已经尝试在不带 id 的情况下命名 id 并小心导入,但目前 synthetic 在这方面偶尔会失败,我不得不不断重建。尤其是当我打开另一个 Android Studio 实例时,我经常这样做是为了咨询我拥有的其他项目。

有什么想法吗? :-)

最佳答案

在我看来,您可以做的最简单、最干净的事情是:

private val myTextView: TextView
get() = f_layoyt_text_view

这样你就不必使用可笑的,至少在 2018 年,ButterKnife 和更不方便的 findViewById

关于android - 重命名变量以使 XML id 更清晰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50964159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com