sma*_*dic 6 android android-linearlayout
在app我有:
LinearLayout linearLayout2 = (LinearLayout) findViewById(R.id.cvLinearLayout2);
Run Code Online (Sandbox Code Playgroud)
和后:
linearLayout2.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)
我找不到办法带linearLayout2回来.
尝试了一切:
linearLayout2.setVisibility(View.VISIBLE);
linearLayout2.bringToFront();
linearLayout2.getParent().requestLayout();
linearLayout2.forceLayout();
linearLayout2.requestLayout();
linearLayout2.invalidate();
Run Code Online (Sandbox Code Playgroud)
但没有结果.
linearLayout2有一个父母linearLayout1,所以我也试过:
linearLayout1.requestLayout();
linearLayout1.invalidate();
Run Code Online (Sandbox Code Playgroud)
仍然没有结果.linearLayout2留下来GONE.在我的应用程序中,我需要linearLayout离开,然后,过一会儿再次重绘它.请帮忙.
View.GONE将从屏幕中删除视图,并将视图占用的空间释放到屏幕上的其他视图.所以,"GONE"观点无法回归.你需要重新加载它.
如果你想保留空间,你可以使用View.INVISIBLE.现在不删除视图,而是隐藏视图并显示空白区域.
在简单的插图中,您有以下设置:
ABCD
打电话后B.setVisibility(View.INVISIBLE);你会有:
A CD
但打电话后B.setVisibility(View.GONE);你会得到:
ACD
将视图的可见性设置为 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);
}
}}
Run Code Online (Sandbox Code Playgroud)
它工作得很好。您的程序正在执行的其他一些代码必须负责。使用相关代码编辑您的帖子,我们可能会给您一个更好的答案。
| 归档时间: |
|
| 查看次数: |
16142 次 |
| 最近记录: |