如何从列表适配器刷新布局/上下文(我认为这是我需要的)

时间:2019-07-05 20:13:18

标签: java android layout

我有一个我无法理解其原因以及如何解决它的错误。我相信这是布局/视图/上下文刷新的问题,但我不知道。

我有一个来自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 :(得分:0)

首先,您不需要存储上下文,因为在View中具有方法view.getContext()。 我推荐这篇文章: https://possiblemobile.com/2013/06/context/

另一方面,请确保没有与图像视图重叠的重影视图。