隐藏线性布局和显示其他布局元素混合在一起



我有这样的代码:

Button go_back_maps = (Button)findViewById(R.id.Button02);
go_back_maps.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        slide_down Fx = new slide_down();
        setts.setVisibility(View.GONE);
        Fx.slide_up(Awake.this, setts);
        pick.setVisibility(View.VISIBLE);
        Fx.slide_down(Awake.this, pick);
    }
});

主要是:两种布局,地图和MapSettings,当用户在地图布局中设置标记并单击"继续"时,它会隐藏地图布局并带向上滑动动画,并显示MapSettings布局并带向下滑动动画。

我的问题是:当用户点击"返回"时,它会再次打开地图,当用户点击地图以改变标记时,它会对MapSettings布局按钮做出反应,这使得无法改变标记或与地图交互。

有什么问题吗?这些行是唯一负责在map和mapsettings之间切换的代码行。

有没有办法重载布局之类的?

顺便说一下,这是效果类:

    public static void slide_down(Context ctx, View v){
    Animation a = AnimationUtils.loadAnimation(ctx, R.anim.slide_down);
    if(a != null){
    a.reset();
    if(v != null){
    v.clearAnimation();
    v.startAnimation(a);
    }
    }
    }
    public static void slide_up(Context ctx, View v){
        Animation a = AnimationUtils.loadAnimation(ctx, R.anim.slide_up);
        if(a != null){
        a.reset();
        if(v != null){
        v.clearAnimation();
        v.startAnimation(a);
        }
        }
        }
}

你对这个问题的描述有点难以理解。

但是关于你的问题:

"有没有办法重新加载布局之类的?"

这里有一些需要考虑的事情:

1)您可以使用setContentView(R.layout.my_layout)设置活动的布局,但请记住,在活动中多次调用setContentView()有许多陷阱可以绊倒您。在之前的布局中,你对视图的任何引用都需要重置,为了安全起见,你应该在膨胀新视图之前完全删除所有现有视图。

2)你可以使一个布局无效,导致它被重新绘制。

ViewGroup vg = findViewById (R.id.my_layout);
vg.invalidate();