【问题标题】:How to use TextInputLayout without Theme.appcompat如何在没有 Theme.appcompat 的情况下使用 TextInputLayout
【发布时间】:2018-12-21 15:05:43
【问题描述】:

我正在尝试使用TextInputLayout,但由于缺少样式属性而出现各种错误,因为我的应用主题派生自 android:Theme.Material.Light.DarkActionBar 而不是 Theme.appcompat。如果我确实从 Theme.appcompat 派生主题,我会丢失操作栏,因为我的 Activity 直接派生自本机 Activity 而不是 android.support.v7.app.ActionBarActivity。如果我从 ActionBarActivity 派生,我会得到旧的支持操作栏,与原生 API 21 操作栏相比,它缺少大量功能。我不可能那样做。

在不依赖 appcompat 库的实际 Lollipop 应用程序中不能使用 TextInputLayout 似乎很奇怪。据推测,新设计模块中的其他好东西也不会起作用。 :-(

是否存在必须在应用主题中定义的样式列表才能在使用 Theme.Material 的 Activity 中使用 TextInputLayout?我最终在我的应用主题中添加了大约六到七种颜色声明(例如 android:colorControlActivated, android:colorControlHighlight, android:TextColor, &c),但膨胀异常不断出现。

或者有人知道提供TextInputLayout 的设计库的替代品吗?还是只适用于 5.0 或 5.1+

非常奇怪。材料设计很可爱。但我不明白为什么没有任何原生类来支持材料设计。

【问题讨论】:

  • 你自己用谷歌搜索“浮动标签android”真的那么难吗?
  • 谢谢。很容易用谷歌搜索它。但我愚蠢地搜索 TextInputLayout 而不是“浮动标签 android”。这回答了“或者有人知道问题的替代部分吗?”
  • 所以你使用了浮动标签,而不是官方的TextInputLayout?我想在没有 appCompat 的情况下使用 TextInputLayout
  • 我最终选择了 appCompat 路线。如果你谷歌,有各种独立的解决方案可用,其中大多数都是无所谓的好。我确实找到了一个,但最终大大增强了它。

标签: android


【解决方案1】:

使用这种类型它永远不需要 Theme.appcompat

<com.google.android.material.textfield.TextInputLayout
                android:id="@+id/tv_metadata_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/tv_metadata_Details"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>

【讨论】:

  • 很好的解决方案。 :-) 虽然我认为在我问这个问题时不可用。已接受答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 2019-11-15
  • 2013-06-30
  • 2015-08-09
  • 2018-08-21
  • 2017-06-11
相关资源
最近更新 更多