ViewStub可以用来实现局部页面跳转的功能,让一些View先隐藏,点击后可显示,view显示后有一些点击操作,我想获得他的ontouch事件进行点击,但直接设置view.setOnClickListener,没反应,经过几番周折发现它有个setOnInflateListener,它是用来监听ViewStub Inflate后的操作,把对ViewStub的操作放到这里面即可,个人判断,若ViewStub里有一些控件需要捕获并设置监听,也是需要在这里写。
viewStub.setOnInflateListener(new OnInflateListener() {
@Override
public void onInflate(ViewStub stub, View inflated) {
// TODO Auto-generated method stub
Log.v("~~~~viewStub.setOnInflateListener~~~~~~", "zhixing");
inflated.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
Log.v("~~~~viewStub.setOnInflateLi22stener~~~~~~", "zhi22xing:"+event.getY());
return false;
}
});
}
});
刚本想写写我遇到的问题,但中途想起一个办法,问题了一半,就是viewStub显示时,需要加载动画也是写在这里面,但是接下来就产生另一个问题:动画只在第一次加载时产生,之后就不产生,这是为什么?这个setOnInflateListener是怎么一个调用机制?待解。。。