前言:
本文讲解从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,所以不能作为判断条件。