视图或片段库为常见数据类型组成 UI

Posted

技术标签:

【中文标题】视图或片段库为常见数据类型组成 UI【英文标题】:View or Fragment library to compose UI for common data types 【发布时间】:2012-05-06 02:04:38 【问题描述】:

问题

Reusables@common.com 1,000,000 英镑 www.inventing-a-wheel.ee 操作快捷键:C

我需要让用户输入电子邮件、选择日期、编辑网页、选择图像等 - android SDK 不直接支持许多常见的演示任务小部件库,所以我认为可能有一个专门处理此类 UI 问题的专用存储库或框架。

[ 虽然 Android 提供了可以变成特定电子邮件编辑器的小部件,但这里的问题是找到一个专门针对此类常见数据类型的现成组件库,即专门针对这些数据类型的 UI 元素以开箱即用的方式呈现此类数据并提供验证。 ]

现有来源?

所以我在网上搜索了Androidwidgetlibraryviewtoolkitfragmentrepository 等术语的组合,但只找到了误报。

您能否向我推荐任何提供类/XML 布局列表的集体努力implementing common data-specific input / editing / configuration elements?

所以我可以在 ActivityA1、ActivityA3、ActivityB1、ActivityN9 中执行类似的操作:

新的 EmailEditText() 新的 UrlTextView() 新的 IPView() ...

将数据与视图匹配?

我真正想要的是一组小部件,这些小部件将根据需要呈现的数据进行解析,可能类似于 implicit intent resolution ?

因此,从我的域模型中,我将提供一些具有特定数据类型的数据,这些数据应该以某种方式适当地显示。但我没有明确设置哪个视图将呈现这些数据,而是在两者之间有一个匹配器,用于过滤可用的特定用途视图列表并为给定的数据类型选择最合适的视图。

已经有类似的东西了吗?

【问题讨论】:

【参考方案1】:

很遗憾,Android 并没有你想要的,但不用担心 - 肯定有一些东西可以让你的生活更轻松。

例如,您可以在 EditText 上设置 inputType 以更改键盘的外观(例如,对于电子邮件,您有“@”和“.com”按钮,对于电话号码,您有数字)并使用InputFilter 控制数据输入。

您甚至可以使用EditText.setTransformationMethod() 更改数据的显示方式(例如在电话号码中添加空格)。

如果你想选择一张图片,你可以发送一个意图来请求它:http://android-er.blogspot.se/2011/02/select-image-using-android-build-in.html

通过组合这些方法来构建您自己的一组小部件应该不会太难。

更新:现在有一个库可以让表单验证更容易:https://github.com/vekexasia/android-form-edittext

【讨论】:

虽然 Android 提供了许多几乎完全成熟的 UI 元素,但我觉得我们仍在浪费集体努力重新发明*** - 我知道你提到的自定义设置,但为什么不提供它们作为现成的-为常见的 UI 任务制作包,并添加适当的验证(新的 EmailEditText()),而不是每个人(重新)实现自己的。然后还有其他小部件,例如输入一个经常需要的 IP,但 Android 不提供...由于缺少任何库链接,我感觉我将不得不走同样的路 :( 希望最后死去。 我发现通常情况下,使用这些自定义来实现您想要的非常简单。 Android 被设计为易于扩展,因此大多数时候您甚至不需要子类化小部件来做您想做的事情。【参考方案2】:

有一个dateslider 组件来实现混合日期时间输入元素。

但是根据my experiences 的说法,当前的 android 开发工具 adt(至少版本 17,但可能直到版本 19)目前无法正确处理带有资源的 jar 文件。您必须包含库源才能使用小部件构建项目。

【讨论】:

我一直在使用源代码中包含的许多链接库中的布局、可绘制对象和值,但不知道这不能关闭!不过,这为任何开源工作留下了空间.. 并感谢日期滑块链接。

以上是关于视图或片段库为常见数据类型组成 UI的主要内容,如果未能解决你的问题,请参考以下文章

c语言中,函数类型有几种?

微服务架构中常见的protobuf数据类型?

(15)在数据表视图中,不能 A)修改字段的类型 B)修改字段的名称 C)删除一个字段 D)删除一条记录

变量与数据类型

(硬 核)使用MySQL管理和查询数据 ( 入 门 须 知 ②)

(硬 核)使用MySQL管理和查询数据 ( 入 门 须 知 ②)