(安卓)布局不会在设置可见性(视图。没了)?



在应用程序中,我有:

LinearLayout linearLayout2 = (LinearLayout) findViewById(R.id.cvLinearLayout2);

之后

linearLayout2.setVisibility(View.GONE);

我找不到办法把linearLayout2带回来。

尝试了一切:

  linearLayout2.setVisibility(View.VISIBLE);
  linearLayout2.bringToFront();
  linearLayout2.getParent().requestLayout();
  linearLayout2.forceLayout();
  linearLayout2.requestLayout();
  linearLayout2.invalidate();

但没有结果。 linearLayout2有一个父linearLayout1,所以我也尝试了:

  linearLayout1.requestLayout();
  linearLayout1.invalidate();

结果仍然为零。 linearLayout2保持GONE。在我的应用程序中,我需要将linearLayout移开,然后过了一段时间再次重绘它。请帮忙。

视图的可见性设置为 GONE 不应影响它使用 setVisibility(View.VISIBLE( 方法"返回"的能力

例如,我在我的一个应用程序中有以下代码:

public void onCheckedChanged(CompoundButton checkBox, boolean isChecked{
    if(checkBox == usesLocationCheckBox)
    {
        View view = findViewById(R.id.eventLocationOptions);
        if(isChecked)
        {
            view.setVisibility(View.VISIBLE);
            usesTimeCheckBox.setEnabled(false);
        }
        if(!isChecked)
        {
            view.setVisibility(View.GONE);
            usesTimeCheckBox.setEnabled(true);
        }
    }}

它工作得很好。 程序正在执行的其他一些代码必须负责。 使用相关代码编辑您的帖子,我们也许可以为您提供更好的答案。

View.GONE将从屏幕中删除视图,并且视图占用的空间将释放到屏幕上的其他视图。因此,"消失"的观点无法返回。您需要重新加载它。

如果要保留空间,可以使用View.INVISIBLE .现在视图不会被删除,而是隐藏视图并显示空白区域。

在简单插图中,您具有以下设置:

ABCD

致电B.setVisibility(View.INVISIBLE);后,您将拥有:

A CD

但是打电话给B.setVisibility(View.GONE);后,你会得到:

ACD

最新更新