我试图创建一个AutoCompleteTextView,被一个TextInputLayout. 根据文档,我应该使用这种风格:
Widget.MaterialComponents.TextInputLayout.*.ExposedDropdownMenu
Run Code Online (Sandbox Code Playgroud)
但我无法解决这种风格。Android Studio 说我只能使用:
@style/Widget.MaterialComponents.TextInputLayout.FilledBox.Dense
@style/Widget.MaterialComponents.TextInputLayout.FilledBox
@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense
@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox
Run Code Online (Sandbox Code Playgroud)
我的项目使用
implementation 'com.android.support:design:28.0.0'
Run Code Online (Sandbox Code Playgroud)
最终结果应如下所示:
Widget.MaterialComponents.TextInputLayout.*.ExposedDropdownMenu
Run Code Online (Sandbox Code Playgroud) 我的应用程序在LinkageError使用lazy{}. 崩溃仅在以下情况发生:
minifyEnabledtrue在 build.gradle 中设置为,并且 lifecycle-2.0.0与minifyEnabled def lifecycle_version = '2.1.0'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
Run Code Online (Sandbox Code Playgroud)
此外,崩溃仅发生在其中一个视图模型上。在此之前触摸的同一活动中的其他视图模型不会使应用程序崩溃。
崩溃发生在这里的第二行:
private val searchStackViewModel by lazy {
ViewModelProviders.of(this)[SearchStateViewModel::class.java]
}
Run Code Online (Sandbox Code Playgroud)
该SearchStateViewModel是:
class SearchStateViewModel : ViewModel() {
// Live data that initialises to empty stack with SearchStack.init
private val privateStack = MutableLiveData<SearchStack>().apply {
value = SearchStack()
}
// Observable view of search stack so it can't be directly modified
internal val stateStack : LiveData<SearchStack> …Run Code Online (Sandbox Code Playgroud) android android-architecture-lifecycle android-viewmodel android-architecture-components android-jetpack