无法解析Widget.MaterialComponents.TextInputLayout。*。ExposedDropdownMenu

时间:2019-06-12 08:08:04

标签: android material material-components material-components-android

我尝试创建一个由TextInpuLayout包围的AutoCompleteTextView。根据{{​​3}},我应该使用

Widget.MaterialComponents.TextInputLayout.*.ExposedDropdownMenu 

作为样式。

但是我可以解决这种风格,我只能使用

@style/Widget.MaterialComponents.TextInputLayout.FilledBox.Dense
@style/Widget.MaterialComponents.TextInputLayout.FilledBox
@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense
@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox

我的项目使用

implementation 'com.android.support:design:28.0.0'

最终结果应如下所示:

<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/hint_text">

  <AutoCompleteTextView
      android:id="@+id/filled_exposed_dropdown"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"/>

</com.google.android.material.textfield.TextInputLayout>

5 个答案:

答案 0 :(得分:2)

根据this issue,文档中的*意味着可以使用TextInputLayout中的任何样式,例如FilledBoxOutlinedBox。 此外,它在1.1.0版本中尚不可用,因此我使用此依赖项成功使其工作:

implementation 'com.google.android.material:material:1.2.0-alpha06'

以及这两种样式中的任何一种(请记住在应用程序中使用Theme.MaterialComponents,如@ R3mx所述):

style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"

答案 1 :(得分:1)

我在Android Material Components的Github问题中提出了此查询。

基于this response,公共文档不是基于当前的稳定版本,而是基于最新的alpha(或beta)版本。从material.io的文档中无法得知该库的稳定版本,alpha或beta版本中的哪些组件。

已澄清,此问题的解决方案是按照@ jeel-vankhede的建议将支持设计库升级到:

implementation 'com.google.android.material:material:1.1.0-alpha07'

相关提示,如果您还使用ViewModels(lib v。2.0.0):

将Material Design库升级到1.1.0-alpha会自动将androidx.lifecycle库更新为2.1.0+。此更新与2.0.0相比有重大变化,可能会破坏您的视图模型代码。此更改仅在应用程序的缩小版本中观察到。

答案 2 :(得分:0)

别忘了在应用程序中使用Theme.MaterialComponents

AndroidManifest.xml

<application
    android:theme="@style/AppTheme"
    ...

style.xml

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">

答案 3 :(得分:0)

您现在可以使用

implementation 'com.google.android.material:material:1.2.0-alpha05'

答案 4 :(得分:0)

我在

implementation 'com.google.android.material:material:1.2.1'

我仍然找不到

Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu

我在Android Studio中,已经完成了“使缓存无效并重新启动”操作。