開始前請先看看  這篇文章 ~   您是否有同樣的經驗,想點擊 Listview item 中的 Checkbox 時,卻常常意外點到整個 item,而造成預期外的動作? 嚴格來說這好像也不能怪開發者,誰叫預設的 Checkbox 就是那麼小,更不可能怪使用者說你手指怎麼那麼肥...。   但若想保有優良的使用者體驗,這個小細節是可以被解決的。處理的方法有很多種,比如放大 Checkbox 本身的 Drawable 或從 Layout 下手...但由於這樣做可能擠壓到其他的元件,再加上 Checkbox 本身的缺限,讓過程也有些麻煩。   因此我們可以考慮另一個方法,使用 TouchDelegate 來增加元件的觸控響應區域。   程式範例:  final View parent = (View) delegate.getParent();  //delegate是想擴大觸控範圍的元件 parent.post( new Runnable() {         public void run() {          final Rect r = new Rect();          delegate.getHitRect(r);          r.top -= 10;  //觸控範圍往上增加         r.bottom += 10;   //觸控範圍往下增加         r.left -= 10;  //觸控範圍往左增加         r.right += 10;  //觸控範圍往右增加         parent.setTouchDelegate( new TouchDelegate( r , delegate));      }  });   簡單來說就是透過父容器 setTouchDelegate,以調整觸控響應區域。這樣就不必動到元件本身或 Layout,一來讓元件維持小巧精美,二來又有足夠的響應區域。   參考連結:  http://developer.android.com/reference/android/view/TouchDelegate.html   http://www.daggie.be/?p=1006   http://android.cyrilmottier.com/?p=574
Creating apps to make your life easier.