Leanback: ImageViewCard, как сделать информационный блок прозрачным? - PullRequest
0 голосов
/ 27 мая 2018

Я создаю приложение для Android TV, проблема с прозрачным фоном для ImageViewCard в случае выбранного состояния, см. Изображение ниже:

enter image description here

Я установил прозрачный фон в коде:

override fun onCreateViewHolder(parent: ViewGroup): ViewHolder {
    Log.d(TAG, "onCreateViewHolder")
    val v = ImageCardView(parent.context)
    v.background = ColorDrawable(parent.context.resources.getColor(R.color.trans))
    v.isFocusable = true
    v.infoAreaBackground = ColorDrawable(parent.context.resources.getColor(R.color.trans))
    v.isFocusableInTouchMode = true
    v.cardType = BaseCardView.CARD_TYPE_INFO_UNDER
    v.setInfoAreaBackgroundColor(parent.context.resources.getColor(R.color.trans))
    v.setBackgroundColor(parent.context.resources.getColor(R.color.trans))

    v.setOnFocusChangeListener({ view: View, b: Boolean ->
        v.background = ColorDrawable(parent.context.resources.getColor(R.color.trans))
        v.isFocusable = true
        v.infoAreaBackground = ColorDrawable(parent.context.resources.getColor(R.color.trans))
        v.infoAreaBackground = ColorDrawable(parent.context.resources.getColor(R.color.trans))
    })

Как правильно это сделать?Как сделать прозрачный фон для выбранного состояния?Любые ссылки на стили для ImageCardView горячо приветствуются.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Две вещи, которые вы можете сделать

1-я вещь: -

 cardView.setInfoVisibility(View.GONE);

2-я вещь: - Для этого вам нужно сделать свои собственные карты.Вот краткое описание того, как это можно сделать.

Шаг 1: Создайте один файл view_holder.xml в макетах.

Шаг 2: Создайте Cardview, расширяющий BindableCardView <"пользовательский объект"> a) Здесь вы получите bind («пользовательский объект») Метод переопределения b) Здесь другой метод

@Override
protected int getLayoutResource() {
    return R.layout.episode_card_view;
} 

Шаг 3: Создайте класс (скажем CustomePresenter.class), расширяющий Presenter

public class EpisodeCardRepresenter extends Presenter{ @Override
public ViewHolder onCreateViewHolder(final ViewGroup parent) {
    return new ViewHolder(new CardView);
}

@Override
public void onBindViewHolder(final ViewHolder viewHolder, Object item) {
    ((CardView) viewHolder.view).bind(("custom object") item);

}}

Шаг 3: Затем добавьте этого докладчика в класс, необходимый внутри нового ArrayObjectAdapter (new CustomePresenter ())

Готово Happy Coding:)

0 голосов
/ 28 мая 2018

Итак, я нашел в чем проблема.Добавил мои карты в ListRowPresenter.Чтобы не видеть такой элемент внутри, необходимо вызвать setShadowEnabled (false) - в Java или установить свойство в Kotlin

val lrp = ListRowPresenter()
lrp.shadowEnabled = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...