我不明白这一行((LinearLayout)addView.getParent())。removeView(addView);

时间:2018-01-06 06:36:35

标签: android android-layout

Button buttonRemove = addView.findViewById(R.id.remove);
                buttonRemove.setOnClickListener(new View.OnClickListener(){

                    @Override
                    public void onClick(View v) {
                        ((LinearLayout)addView.getParent()).removeView(addView);
                    }});

2 个答案:

答案 0 :(得分:0)

在按钮上单击,您将从父视图中删除“addView”。

所以基本上,子视图上的按钮是从父视图中删除子视图本身。

答案 1 :(得分:0)

我们将逐步评估此事。

首先,对此进行评估:

addView.getParent()

有一些名为addView的视图,getParent返回addView的父视图,即addView所在的视图组。

然后,我们将其转换为LinearLayout

(LinearLayout)addView.getParent()

编写此代码的人似乎断言addView的父视图必须是线性布局。

现在,我们会对我们评估的所有内容进行评估并致电removeView(addView)

当您在removeView上致电ViewGroup时,视图组中的特定视图将被删除,即消失。在这里,您希望addView消失。

基本上代码的作用是:

  

获取addView的父级,将其转换为线性布局,然后从中删除addView

用更抽象的术语来说,

  

从其父

中删除addView