在view.setVisibility(View.GONE)和view.setVisibility(View.VISIBLE)之后刷新RelativeLayout

时间:2013-07-01 07:00:12

标签: java android layout visibility relativelayout

请查看以下图片以了解问题:

enter image description here

如您所见,有一个RelativeLayout,其中包含自定义ViewLinearLayout。 在它们之间,还有另一个ViewVisibility设置为GONE。 现在,当我按下Button时,我想将GONE视图的可见性更改为VISIBLE,然后重新排列RelativeLayout,以便第三个{{1}在自定义ViewView之间获取。当我按下另一个按钮时,我想再次进行第三次观看GONE。我怎样才能做到这一点?

这是我的XML:

LinearLayout

如果我只在OnClick()方法中设置第三个视图的可见性,它将显示在LinearLayout上方,它将覆盖自定义视图(我之前尝试过)。换句话说,它不会移动RelativeLayout。

2 个答案:

答案 0 :(得分:12)

findViewById(R.id.button1).setOnClickListener(new OnClickListener(){
     public void onClick(View v) {
         findViewById(R.id.hiddenview).setVisibility(View.GONE);
         findViewById(R.id.relativelayout).invalidate();
     }
});
findViewById(R.id.button2).setOnClickListener(new OnClickListener(){
     public void onClick(View v) {
         findViewById(R.id.hiddenview).setVisibility(View.VISIBLE);
         findViewById(R.id.relativelayout).invalidate();
     }
});

答案 1 :(得分:-1)

在您的活动中,onClick()GONE视图的实例设为View.VISIBLE,以便它在两个视图之间重新显示。

 viewName.setVisibility(View.VISIBLE);

为此,VIEW之间应该已经存在于xml中,只是默认为GONE