在我的应用程序中:
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
移开,然后在一段时间后重新绘制它。请帮忙。
最佳答案
View.GONE
将从屏幕上删除该 View ,并将该 View 占用的空间释放给屏幕上的其他 View 。因此,“GONE” View 无法返回。您需要重新加载它。
如果你想保留空间,你可以使用View.INVISIBLE
。现在 View 并没有被移除,而是隐藏了 View 并显示空白。
在简单的说明中,您具有以下设置:
ABCD
调用 B.setVisibility(View.INVISIBLE);
后,您将拥有:
CD
但是在调用 B.setVisibility(View.GONE);
之后你会得到:
ACD
关于android - (Android) Layout 不会在 setVisibility(view.GONE) 后重绘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8863776/