问题描述:一张图片,在需要显示的时候显示,否则处于隐藏状态。图片隐藏时不占用任何的布局控件;图片显示时,图片一下的所有布局依次向下移动。如图所示:

点击按钮,图片显示,再次点击,图片消失。

问题解决:

通过上网查资料,可以通过view的可见性实现以上功能。

在布局文件xml中通过属性 android:visibility进行控制。

该属性有三个参数,分别为:visible(可见)invisible(不可见)以及gone

gone与invisible都是不可见的。但不同的是,gone在隐藏的情况下不会占用任何的布局空间。

明白以上属性以及属性参数之后,可以在java文件中,为button设计监听器,点击button则可以控制view的可见性了。

下面给出完整代码。

另外,我已将项目工程上传至csdn,需要的朋友可以下载。地址:http://download.csdn.net/download/jenn_lian/4520407

xml文件:

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

<TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

<Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="click it !"
        android:id="@+id/btn_mybuttom"
        />
    <ImageView
        android:id="@+id/img"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:src="@drawable/youtube"
       
        />
    <TextView
        android:text="it is an example!"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
</LinearLayout>

java文件:

package com.csdn.blog;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

/**
 * the activity is to show the invisible layout when it is necessary
 *
 * @author jenn
 *
 */
public class SumaryActivity extends Activity {

private Button btn_Mybutton;
 private ImageView imgView_img;

/** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

findView();

btn_Mybutton.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

// i=0,it is visible;i=4,it is invisible;i=0,it is gone;
    int i = 0;
    i = imgView_img.getVisibility();
    if (i == 8) {
     imgView_img.setVisibility(View.VISIBLE);
    } else {
     imgView_img.setVisibility(View.GONE);
    }

}
  });
 }

/**
  * find views by id for each one
  */
 public void findView() {
  btn_Mybutton = (Button) findViewById(R.id.btn_mybuttom);
  imgView_img = (ImageView) findViewById(R.id.img);
 }
}

下面对i进行简单的说明。getVisibility()方法是获取当前空间是否可见,如果可见,返回值为8,不可见但占空间,返回值为4;不可见并不占用空间,返回值为0.

关于android中的隐藏布局相关推荐

  1. Android中的表格布局

    文章目录 1 Android中的表格布局 1 Android中的表格布局 重要属性: android:stretchColumns android:shrinkColumns android:coll ...

  2. Android中动态初始化布局参数以及ConstraintLayout使用中遇到的坑

    Android中动态初始化布局以及ConstraintLayout遇到的一个坑 ConstraintLayout是Android中的一个很强大的布局,它通过控件之间的相对定位,来完成一个layout中 ...

  3. Android中的约束布局

    文章目录 1 Android中的约束布局 1.1 约束布局的重要属性 1.2 约束布局示例 1 Android中的约束布局 1.1 约束布局的重要属性 重要属性: app:layout_constra ...

  4. Android中的网格布局

    文章目录 1 Android中的网格布局 1 Android中的网格布局 重要属性: android:rowCount(行数量) android:columnCount (列数量) android:l ...

  5. Android中的帧布局

    文章目录 1 Android中的帧布局 1 Android中的帧布局 首先看下效果: 下面看下xml: <?xml version="1.0" encoding=" ...

  6. Android中的相对布局

    文章目录 1 Android中的相对布局 1.1 相对布局的重要属性 1.2 相对布局示例 1 Android中的相对布局 1.1 相对布局的重要属性 相对于父容器(取值:true/false),如: ...

  7. Android中的常见布局

    文章目录 1 常见布局 2 创建布局的方式 1 常见布局 Android中的常见布局如下: 线性布局(LinearLayout): 相对布局(RelativeLayout): 帧布局(FrameLay ...

  8. Android 中LayoutInflater(布局加载器)之介绍篇

    本文出自博客Vander丶CSDN博客,如需转载请标明出处,尊重原创谢谢 博客地址:http://blog.csdn.net/l540675759/article/details/78099358 前 ...

  9. 1._请写出5种以上的android中界面常用布局方式,跳槽季“充电宝”Android面试题(一)...

    1.请介绍下Android中常用的5种布局 Android中常用的5种布局分别为:FrameLaout(框架布局).LinearLayout(线性布局).AbsoluteLayout(绝对布局).Re ...

最新文章

  1. 分享|智办事助力杭州佰勤医疗器械组织管理数字化过渡
  2. 贝塞尔曲线与CSS3动画、SVG和canvas的应用
  3. ubuntu使用fail2ban_如何在Ubuntu 20.04上安装和配置Fail2ban
  4. Java高阶部分知识点汇总(一)- 成员变量与局部变量详讲
  5. java文件拷贝时 buff给多大合适_Java复制文件
  6. python flask跨域_Flask框架踩坑之ajax跨域请求实现
  7. matlab拔河比赛_拔河比赛
  8. 六一特辑丨“我的礼物我开发”这群小朋友在用新的方式对话未来
  9. 通用型CRC校验算法
  10. 一款轻量级android图表组件SimpleChart-Kotlin
  11. linux编译安装openssl-3.0.2
  12. 深度解读:2021 中国低代码平台发展现状
  13. 如何在oracle官网下载jdk11,在linux上使用wget从oracle官网下载jdk11
  14. No suitable resolver
  15. android studio安装SDK时无法勾选
  16. 长期戴耳机的危害有哪些?耳机种类的选择很重要
  17. 基于74LS161实现的多功能数字钟
  18. 复杂网络2012年度盘点:博弈+传播+控制
  19. [Unity]Mac调用SVN更新
  20. Docker——阿里云搭建Docker Swarm集群

热门文章

  1. Linux文本编译工具VIM详解
  2. 下 终端_营销数字化能力建设:卡姿兰如何打造线上线下一体化,赋能终端?...
  3. 分享一个有关Android从小白到资深工程师的故事
  4. 自己搭建了一个美团外卖红包的公众号
  5. excel vba 提示: 宏被禁止----- 解决办法
  6. 原生JS实现游戏--棍子英雄(简单版)
  7. linux虚拟文件系统(一)-文件系统架构
  8. 【C/C++】虚拟机实现:用C语言来写Java虚拟机
  9. Java - 日志(进阶篇)
  10. java定义猴子类的题_【视频+图文】Java经典基础练习题(六):猴子吃桃子问题...