Android素材设计"文字字段下拉菜单",选择器(微调器)

AaA*_*AaA 4 android android-studio material-design android-studio-2.3

我正在根据Google Material Design设计视图,我需要遵循为文本字段指定的规则,并为所有输入添加标签,提示,下划线和图标.这通过包装正常工作与简单的文本输入TextView在TextInputLayout.然而,对于其他输入类型,例如拾取器,菜单,微调器及其悬停,聚焦,禁用,错误状态,它变得更加复杂.

请查看材料网站中的字段类型,前缀和后缀以及下面包含的其他输入或图像的文本字段文章.

我发现 这与部分答案和问题,这一个没有(实际)的答案,无论是从2015年开始.

我正在使用API​​ 26和Android studio 2.3.3(当前版本)但在组件调色板中,我既没有看到这些组件也没有看到类似的东西.

题

虽然可以使用布局,图标和形状来实现这些控件中的每一个,并编写一堆代码来支持每个不同的状态,但它们不应该是design库的一部分吗?

我是否遗漏了一个组件或库(来自Google而不是第三方库)我需要添加到我的项目才能使用这些组件,或者在2年后,那些实际上仍然不存在?

以下是我所指的图像:

标签,图标,下划线和提示 标签,后缀,下划线 选择器 日期选择器

小智 8

材料的指导线是为移动和Web应用程序定义的.因为有些组件没有为android实现.我不知道它是否可以帮助你,但是,特别是对于下拉菜单和文本字段,有一个名为BetterSpinner的有用库可以帮助你.

要使用它,只需将它添加到您的gradle中即可

implementation ('com.weiwangcn.betterspinner:library-material:1.1.0') {
    exclude group: 'com.android.support', module: 'appcompat-v7'
}
Run Code Online (Sandbox Code Playgroud)

请注意,它使用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"/>
Run Code Online (Sandbox Code Playgroud)

这将为您提供将提示放在字段上方的行为,就像输入布局一样.你可以通过改变它的值来解决这个问题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"/>
Run Code Online (Sandbox Code Playgroud)

对不起,我做不了多少,有时我也遇到了与材料组件相同的问题.希望lib可以帮助你.