我尝试创建一个由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>
答案 0 :(得分:2)
根据this issue,文档中的*
意味着可以使用TextInputLayout
中的任何样式,例如FilledBox
或OutlinedBox
。
此外,它在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中,已经完成了“使缓存无效并重新启动”操作。