Android,如何从 UI 中删除视图?

Posted

技术标签:

【中文标题】Android,如何从 UI 中删除视图?【英文标题】:Android, How to remove a view from UI? 【发布时间】:2012-05-21 08:24:29 【问题描述】:

在我的应用程序主页中,服务器向我发送了一些标志。其中之一是广告标志。如果设置为 true 我需要显示广告,如果设置为 false 我不应该显示它。

现在,问题。我需要像这样将广告空间放在 XML 文件中。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical">


<RileativeLayout
    android:id="@+id/adv"
    android:layout_
    android:layout_>

</RileativeLayout>

.
.
.
</LinearLayout >

根据上面的代码,如果标志设置为 false,我不会显示广告,但差距仍然存在于我的屏幕中。如何动态地从我的代码中删除它并向上移动其他视图(这是对它的打击)?

【问题讨论】:

view.setVisibility(View.GONE) 这将完成工作findViewById(R.id.adv).setVisibility(View.GONE); 【参考方案1】:

正如上面在 cmets 中针对您的问题所提到的:一个视图有几个不同的视图选项。

View.VISIBLE:这意味着它是可见的,并且可以被用户看到。

View.INVISIBLE:这意味着视图仍在布局中,但用户无法看到(用户也无法与之交互)。

View.GONE:这意味着视图被破坏并且不再是它的一部分。

要从布局中完全删除视图,您应该使用View.GONE,如果要使其可见,您应该使用View,INVISIBLE

【讨论】:

【参考方案2】:

当你的标志为假时试试这个

add.setVisibility(View.GONE);

【讨论】:

【参考方案3】:

您可以通过更改视图的可见性来“移除”视图。使用

View ad = findViewById(R.id.adv);
ad.setVisibility(View.GONE);

【讨论】:

以上是关于Android,如何从 UI 中删除视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何从android的listview中删除一个项目

如何从集合视图中删除单元格?

如何从 XIB 中删除表视图?

如何编写在运行时确定视图内容的 Android UI 测试?

如何从 ui-router 中的 url 地址中删除哈希标签 (#)

视图弹出后如何从 uinavigationcontroller 中删除分段控制器?