android - (Android) Layout 不会在 setVisibility(view.GONE) 后重绘?

标签 android android-linearlayout

在我的应用程序中:

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/

相关文章:

android - 如何在同一列表项中同时显示字符串和编辑文本字段?

android - 如何在 Android 中显示另一个 Activity 中的一个 Activity ?

Android - 从电话号码获取联系人照片

java - 如何在 Activity 中附加此监听器

Android:在 RelativeLayout 中调整大小

android - 检查 View 是否属于线性布局

android - 使用单个 TableLayout 而不是多个 LinearLayouts 的优势,因为 TableRow 仅扩展 LinearLayout

android - 在列表项中动态添加线性布局?

android - Unity GoogleVR1.2 Cardboard在三星上倒挂显示

java - 如何处理(else if)动态条件