Пользовательский вид не расширяетсяAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Пользовательский вид не расширяется

Сообщение Anonymous »

У меня есть три пользовательских представления: SmallBannerView, LargeBannerView и, как и база для двух предыдущих, BannerView.
По отдельности первые два представления отображаются так, как должны, но когда я прикрепляю их к BannerView, все ломается: для некоторых по этой причине они начинают «сжиматься» до левой границы, а попытка увеличить ширину не дает никакого эффекта, увеличивается только рамка, ограничивающая вид.
SmallBannerView's макет: Как это должно отображаться:
Изображение
< /p>
Макет LargeBannerView: Как это будет отображаться:
Изображение
Макет BannerView: И результат:
Изображение

Здесь также класс BannerView:

Код: Выделить всё

class BannerView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0,
) : RelativeLayout(context, attrs, defStyleAttr) {

private var binding: BannerViewBinding

init {
binding = BannerViewBinding.inflate(LayoutInflater.from(context))
addView(binding.root)
}

fun setupBanner(model: BannerUiModel) {

binding.large.setUpLarge(model.largeBanner)
binding.small.setUpSmall(model.smallBanner)
}
}

class LargeBannerView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0,
) : RelativeLayout(context, attrs, defStyleAttr) {

private var binding: LargeBannerViewBinding

init {
binding = LargeBannerViewBinding.inflate(LayoutInflater.from(context))
addView(binding.root)
}

fun setUpLarge(model: LargeBannerUiModel) {
binding.title.text = model.title
binding.description.text = model.description
binding.image.setImageDrawable(AppCompatResources.getDrawable(context, model.imageResId))
}
}

class SmallBannerView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0,
) : RelativeLayout(context, attrs, defStyleAttr) {

private var binding: SmallBannerViewBinding

init {
binding = SmallBannerViewBinding.inflate(LayoutInflater.from(context))
addView(binding.root)
}

fun setUpSmall(model: SmallBannerUiModel?) {
binding.rightTitle.text = model?.rightLabel
binding.leftTitle.text = model?.leftLabel

val imageId = model?.imageResId
if (imageId != null)
binding.image.setImageDrawable(AppCompatResources.getDrawable(context, imageId))
}
}
Результат, который я ожидал увидеть:
Изображение
Я пытался удалить такие параметры, как maxLines и ellipsize, но это не дало результата.

Подробнее здесь: https://stackoverflow.com/questions/793 ... king-wider
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»