在应用程序中,我有:
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);
}
}}
而且效果很好。您的程序正在执行的其他代码必须负责。使用相关代码编辑您的帖子,我们可能会为您提供更好的答案。