Android控件显示和隐藏案例详解

前言:

本文讲解从Java代码中控制控件的显示和隐藏,让屏幕显示更多想见的内容。以常见的Listview列表控件的显示隐藏为例,讲解具体的实现方法。

一.效果动画展示:

这里写图片描述

二.相关知识讲解:

1.控件隐藏的属性:

<TextView android:visibility="visible" />

visibility为visible:显示控件,属性值为0稍后会用到),默认为此属性。可以理解为有人在座位上坐着。

<TextView android:visibility="invisible" />

visibility为invisible:不显示控件,属性值为4稍后会用到),虽不显示,但还是占用原来的控件。可以理解为“占座”,座位占着,但是没有人。

<TextView android:visibility="gone" />

visibility为gone:隐藏控件,属性值为8稍后会用到),控件就“消失”了。可以理解为“给别人让座”,座位就空出来了,别人可以坐了。

2.在布局中隐藏控件:

<TextView android:visibility="gone" />

3.在代码中控制“隐藏”和“显示”属性:

我们可以在布局中设置控件visibility属性为gone,根据需要,在代码中通过设置,可以再显示出来,设置方法:

①显示控件:

//初始化绑定控件textView1后,执行下面代码
//
textView1.setVisibility(View.VISIBLE);

②不可见控件:

//不可见
textView1.setVisibility(View.INVISIBLE);

③隐藏控件:

//隐藏
textView1.setVisibility(View.GONE);

三.隐藏功能实现:

案例:如上图所示,点击标题栏,隐藏下方的Listview。

实现方法:
1. 通过getVisibility()方法获取当前控件的显示状态属性值。
2. 判断Listview当前的显示状态值,显示属性值为0,隐藏属性值为8(本文顶部有说明)
2. 如果为显示状态,则设置为隐藏(setVisibility(View.GONE))。
3. 如果为隐藏,设置为显示(setVisibility(View.VISIBLE))。

//声明控件
private View titleBar;// 标题栏
private ListView listView;// Listview
//绑定控件
listView= (ListView) view.findViewById(R.id.listview);
titleBar = view.findViewById(R.id.ly_temp);

//设置点击事件
titleBar.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                switch (listView.getVisibility()) {
                // 若显示,则隐藏
                case 0:
                    listView.setVisibility(View.GONE);
                    break;
                // 若隐藏,则显示
                case 8:
                    listView.setVisibility(View.VISIBLE);
                    break;
                default:
                    break;
                }
            }
        });
    }

注意: 要用listView.getVisibility()获取当前显示状态值,不要用listView.VISIBLE来获取显示状态值,因为listView.VISIBLE得到的结果永远是0,所以不能作为判断条件。

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值