removeview()不会删除android

时间:2014-06-03 02:14:48

标签: java android android-layout layout hide

我有一个布局(主要),当我点击一个按钮时,它会显示一个带有textview和edittext的RelativeLayout(newLayout)。但是当我想离开那个RelativeLayout(点击某个按钮)时,它就不会消失了。 我的代码是这样的:

当我点击按钮时,这是代码:

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_hide:
            RelativeLayout main = (RelativeLayout) findViewById(R.id.atraccion_layout);
            RelativeLayout newLayout= (RelativeLayout) View.inflate(this, R.layout.newLayout, null);     
            main.addView(newLayout);
        default: 
            return super.onOptionsItemSelected(item);
    }           

}

然后当我点击另一个按钮时,我的代码是:

public void close(View v){
    RelativeLayout main = (RelativeLayout) findViewById(R.id.atraccion_layout);
    RelativeLayout newLayout = (RelativeLayout) View.inflate(this, R.layout.newLayout, null);
    main.removeView(comentarLayout);
    main.forceLayout();
}

但是newLayout仍在那里。

也试过:

((RelativeLayout)v.getParent()).removeView(v);

main.removeView((View)v.getParent());

newLayout.setVisibility(v.INVISIBLE);

newLayout.setVisibility(v.GONE);

((RelativeLayout)newLayout.getParent()).forceLayout();

((RelativeLayout)newLayout.getParent()).removeView(comentarLayout);

没有成功。

有人可以帮助我,为什么不删除布局?

2 个答案:

答案 0 :(得分:1)

我通过使用这些图层定义类属性来解决它

public class ActivityClass extends Activity{
    private RelativeLayout main;
    private RelativeLayout newLayout;

    protected void onCreate(Bundle b){...}
    ...

    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.action_hide:
            main = (RelativeLayout) findViewById(R.id.atraccion_layout);
            newLayout= (RelativeLayout) View.inflate(this, R.layout.newLayout, null);     
            main.addView(newLayout);
            return true;
        }
        default:
            return super.onOptionsItemSelected(item);
    }

    public void close(View v){
        main.removeView(newLayout);
        main.forceLayout();
    }  
}

答案 1 :(得分:0)

如果您有任何视图转换,请尝试使用(view.getParent() as ViewGroup).endViewTransition(view)

结束它们