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

时间:2017-08-11 09:29:38

标签: android android-studio material-design android-studio-2.3

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

请查看资料网站上的Text fields文章,字段类型前缀&后缀其他输入或下面包含的图片。

我发现this提出了部分回答问题,{​​{3}}提出了一个没有(实际)答案的问题,都是从2015年开始的。

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

问题

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

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

以下是我所指的图像:

this Label, Icon, underline, and hint label, suffix, underline Picker

1 个答案:

答案 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可以帮助你。