在应用程序中,我有:

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移开,然后过一会儿重新绘制它。请帮忙。

最佳答案

通过使用setVisibility(View.VISIBLE)方法将 View 的可见性设置为GONE不应影响其“回来”的能力

例如,我的其中一个应用程序中包含以下代码:

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);
        }
    }}

而且效果很好。您的程序正在执行的其他代码必须负责。使用相关代码编辑您的帖子,我们可能会为您提供更好的答案。

10-06 03:38