在应用程序中,我有:
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