#android #kotlin #layout
#Android #kotlin #макет
Вопрос:
у меня проблема с полем в моем TextInputLayout. Ниже изображение проблемы. Это становится очень некрасиво, особенно когда в списке есть 1 элемент.
Публикую свой код и стиль ниже. Пытался избавиться от этого заполнения программно, но, возможно, это какая-то проблема с самим стилем.
<style name="AppTheme.TextInput.Dropdown" parent="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu">
<item name="materialThemeOverlay">
@style/ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox.Dense
</item>
<item name="boxBackgroundColor">@color/colorBackground</item>
<item name="boxBackgroundMode">filled</item>
</style>
И вот как я делаю это в коде. «view» — это контейнер для элементов
private fun addDictionaryField(layoutParams: ConstraintLayout.LayoutParams, formField: FormField): View {
val view = TextInputLayout(ContextThemeWrapper(this, R.style.AppTheme_TextInput_Dropdown))
view.layoutParams = layoutParams
val autoCompleteTextView = AutoCompleteTextView(ContextThemeWrapper(view.context, R.style.AppTheme_AutoCompleteEditText))
autoCompleteTextView.minEms = 4
autoCompleteTextView.maxEms = 6
autoCompleteTextView.isSingleLine = true
autoCompleteTextView.hint = formField.name
autoCompleteTextView.textSize = formField.fontSize?.toFloat() ?: 16F
autoCompleteTextView.dropDownHorizontalOffset = 0
autoCompleteTextView.dropDownWidth = LinearLayout.LayoutParams.MATCH_PARENT
//if (formField.fontColor != "auto" ) autoCompleteTextView.setTextColor(Color.parseColor(formField.fontColor))
//if (formField.backgroundColor != "auto" ) autoCompleteTextView.setBackgroundColor(Color.parseColor(formField.backgroundColor))
autoCompleteTextView.isEnabled = false
val structure = fillFormViewModel.getDictionaryStructure(formField.dictionaryStructure)
if (structure != null) {
if (structure.parentId == null) {
autoCompleteTextView.setAdapter(loadDictionaryFields(structure, null, null))
autoCompleteTextView.setOnItemClickListener { parent, _, position, _ ->
fillFormViewModel.dictionarySelectedElements[formField.id!!] = (parent.adapter.getItem(position) as DictionaryField).id!!
loadChildStructureFields(formField.dictionaryGroup, parent.adapter.getItem(position) as DictionaryField, null, null)
}
}
}
view.addView(autoCompleteTextView)
return view
}
Мне нравится, как это выглядит (за исключением того, что это не выпадающее меню выбора)
У кого-нибудь случайно была подобная проблема? 🙂
Ответ №1:
Пришлось изменить заполнение в стиле, потому что по умолчанию у него было некоторое заполнение
<имя элемента= «android:padding»> 0dp< /item >