我正在根据Google Material Design设计视图,我需要遵循为Text fields指定的规则,并为所有输入添加标签,提示,下划线和图标。通过在TextView
中包装TextInputLayout
,这可以很好地处理简单的文本输入。然而,对于其他输入类型,例如拾取器,菜单,微调器及其悬停,聚焦,禁用,错误状态,它变得更加复杂。
请查看资料网站上的Text fields文章,字段类型,前缀&后缀和其他输入或下面包含的图片。
我发现this提出了部分回答问题,{{3}}提出了一个没有(实际)答案的问题,都是从2015年开始的。
我正在使用API 26和Android studio 2.3.3(当前版本),但在组件调色板中,我既没有看到这些组件也没有看到类似的东西。
问题
虽然可以使用布局,图标和形状来实现这些控件中的每一个,并编写一堆代码来支持每个不同的状态,但它们不应该是design
库的一部分吗?
我是否遗漏了一个组件或库(来自Google而不是第三方库)我需要添加到我的项目才能使用这些组件,或者在2年后,那些实际上仍然不存在的组件或库?
以下是我所指的图像:
答案 0 :(得分:8)
材料的指导线是为移动和Web应用程序定义的。因为有些组件没有为android实现。我不知道它是否可以帮助你,但是,特别是对于下拉菜单和文本字段,有一个名为BetterSpinner的有用库可以帮助你。
要使用它,只需将其添加到您的gradle中,如
implementation ('com.weiwangcn.betterspinner:library-material:1.1.0') {
exclude group: 'com.android.support', module: 'appcompat-v7'
}
请注意,它使用了apcompat v-7的一些支持库,因此如果您已经为项目导入它,请务必将其排除。
之后使用它就像:
<com.weiwangcn.betterspinner.library.material.MaterialBetterSpinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Some Hint"
app:met_floatingLabel="normal"/>
这将为您提供将提示放在字段上方的行为,就像输入布局一样。您可以通过更改app:met_floatingLabel="normal"
您也可以使用此lib编辑文本,而不必使用输入布局中的输入文本字段,对于我来说,只需使用xml就可以获得巨大的内容:
<com.rengwuxian.materialedittext.MaterialEditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Name"
app:met_floatingLabel="normal"/>
抱歉,我做不了多少,有时我也遇到了与材料组件相同的问题。希望lib可以帮助你。