Как обновить макет / контекст из списка адаптеров (думаю, это то, что мне нужно) - PullRequest
0 голосов
/ 05 июля 2019

У меня ошибка, которую я не могу понять причину и способы ее устранения.Я верю, что это проблема обновления макета / представления / контекста, но я не знаю.

У меня есть ячейка из listView (я предпочитаю recyclerView, но у проекта есть годы), и в углу ячейки у меня естькнопка, чтобы показать больше вариантов.Программно он просто делает элемент View.GONE и другой элемент View.VISIBLE.

Я приложу код через мгновение

К этой кнопке я также установил слушателя, который, когда я нажимаю на нее, этосделать противоположное из нижеприведенного.Он показывает некоторые элементы и скрывает весь LinearLayout из ячейки.Элементы показаны, НО LinearLayout держится на экране как жучки.Если я нажимаю в любом месте, он исчезает, и если я пытаюсь нажать на него, он тоже исчезает.Это похоже на то, как вид этой линейки прослушивался и держался там, как призрачный вид.Я сделаю несколько снимков.

Ячейка обычно в начале: https://imgur.com/1BjK0KP

Ячейка после того, как я нажимаю весь вид, чтобы показать LinearLayout внизу ячейки: https://imgur.com/eONSptW

Ячейка после нажатия стрелки на углу, чтобы скрыть LinearLayout.Здесь показано отображение ошибки https://imgur.com/jrT0qxV

Ячейка после нажатия где-либо еще https://imgur.com/XD1jN7U

public void expandView(View view){
    final View cellView = view;
    final LinearLayout editLinear = (LinearLayout) view.findViewById(R.id.cart_edit);
    editLinear.setVisibility(View.VISIBLE);

    final TextViewFont countText = (TextViewFont) view.findViewById(R.id.itemCount);
    countText.setVisibility(View.GONE);
    final TextViewFont total = (TextViewFont) view.findViewById(R.id.itemTotal);

    final ImageView imageViewArrow = (ImageView) view.findViewById(R.id.cart_edit_image);
    imageViewArrow.setImageDrawable(context.getResources().getDrawable(R.drawable.icon_arrow_up));
    //notifyDataSetChanged();
    imageViewArrow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            countText.setVisibility(View.VISIBLE);
            editLinear.setVisibility(View.GONE);
            imageViewArrow.setImageDrawable(context.getResources().getDrawable(R.drawable.icon_arrow_down));

        }
    });

1 Ответ

0 голосов
/ 05 июля 2019

Прежде всего, вам не нужно хранить контекст, потому что в View у вас есть метод view.getContext ().Я рекомендую эту статью: https://possiblemobile.com/2013/06/context/

С другой стороны, убедитесь, что у вас нет призрачного представления, которое перекрывает ваше изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...