ViewStub利用ViewStub显示和隐藏布局
在Android开发中,ViewStub是一个轻量级的组件,它在初始加载时占用的资源非常少,主要用于延迟加载和动态插入布局。ViewStub在XML布局文件中定义,但默认情况下它是不可见的,不会占据任何空间,直到被显式地设置为可见。接下来我们将深入探讨如何利用ViewStub来显示和隐藏布局,以及View.VISIBLE和View.GONE这两个属性在控制布局可见性中的作用。 了解ViewStub的基本用法。在XML布局文件中,你可以这样创建一个ViewStub: ```xml <ViewStub android:id="@+id/viewStub" android:layout_width="match_parent" android:layout_height="wrap_content" android:inflatedId="@+id/inflated_view" android:layout="@layout/your_hidden_layout" /> ``` 这里,`android:layout_width`和`android:layout_height`用于设置ViewStub的大小,通常设为`match_parent`或`wrap_content`。`android:inflatedId`定义了当ViewStub被加载后,其内部布局的ID。`android:layout`则指定了要加载的XML布局资源文件。 当需要显示由ViewStub管理的布局时,可以通过Java代码调用`inflate()`方法: ```java ViewStub viewStub = findViewById(R.id.viewStub); viewStub.setVisibility(View.VISIBLE); // 首先设置为可见 viewStub.inflate(); // 然后进行加载 ``` `setVisibility(View.VISIBLE)`使得ViewStub变为可见,而`inflate()`方法将ViewStub指定的布局文件解析并添加到视图树中。此时,你可以通过`inflatedId`找到已加载的布局,并进行进一步的操作。 接下来,我们讨论View.VISIBLE、View.GONE和View.INVISIBLE这三个常量在控制布局可见性中的应用。它们是Android中控制View可见状态的三个基本选项: 1. **View.VISIBLE**:表示该View可见,会占用布局空间。这是View的默认状态。 2. **View.GONE**:表示该View完全不可见,且不占用布局空间。布局的其他元素会填补它的位置。 3. **View.INVISIBLE**:表示该View不可见,但仍然占用布局空间。其他元素不会移动来填补它的位置。 在实际应用中,`View.GONE`经常用于隐藏某个View,并希望其他元素占据其原本的空间,而`View.INVISIBLE`则适用于暂时隐藏某个View但保留其布局位置的场景。 ViewStub是Android开发中的一个重要工具,它可以用来优化性能,避免一次性加载大量不常用或条件性的布局。结合View.VISIBLE和View.GONE,开发者可以灵活地控制布局的显示和隐藏,以达到理想的用户体验。通过合理运用这些技术,可以提升应用的效率和用户界面的交互性。
- 1
- wly198711172018-05-03明白了。。。。。。。。。。。。
- 做不一样的程序员2018-04-22不错,不错
- 粉丝: 144
- 资源: 26
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【创新无忧】基于海鸥优化算法SOA优化相关向量机RVM实现数据多输入单输出回归预测附matlab代码.rar
- 【创新无忧】基于海鸥优化算法SOA优化相关向量机RVM实现北半球光伏数据预测附matlab代码.rar
- 【创新无忧】基于海洋捕食者优化算法MPA优化广义神经网络GRNN实现数据回归预测附matlab代码.rar
- 【创新无忧】基于海洋捕食者优化算法MPA优化极限学习机ELM实现乳腺肿瘤诊断附matlab代码.rar
- 【创新无忧】基于海洋捕食者优化算法MPA优化广义神经网络GRNN实现光伏预测附matlab代码.rar
- 【创新无忧】基于海洋捕食者优化算法MPA优化相关向量机RVM实现数据多输入单输出回归预测附matlab代码.rar
- 【创新无忧】基于海洋捕食者优化算法MPA优化极限学习机KELM实现故障诊断附matlab代码.rar
- 【创新无忧】基于海洋捕食者优化算法MPA优化相关向量机RVM实现北半球光伏数据预测附matlab代码.rar
- wqeqdqdswqdqa
- Python项目资源1
- Lecture 4-August 10.pptx
- BT201 Quiz 1 2021.pdf
- Lecture 5-August 11.pptx
- Lecture 6-August 23 (Tutorial).pptx
- Lecture 7-August 24.pptx
- 基于 nodejs 的电影天堂爬虫高分项目+详细文档+全部资料.zip