ViewStub的一些不常見的用法
阿新 • • 發佈:2019-01-10
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是怎麼一個呼叫機制?待解。。。