ViewStub的一些不常見的用法

安迪潘發表於2011-08-24

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是怎麼一個呼叫機制?待解。。。

相關文章