2012-12-10 10 views
0

TouchDelegate를 올바로 설정하고 있는지 궁금합니다. LinearLayout 내에서 TextViews의 터치 영역을 늘리고 싶습니다.TouchDelegate가 TextView의 터치 영역을 늘리지 않고 있습니다.

내 레이아웃은 다음과 같습니다.

<LinearLayout 
     android:id="@+id/subcategory" 
     android:layout_width="fill_parent" 
     android:layout_height="35dp" 
     android:background="#000000" 
     android:gravity="center_horizontal" 
     android:orientation="horizontal" 
     android:padding="5dp" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingLeft="30dp" 
      android:paddingRight="30dp" 
      android:text="All" 
      android:textColor="#FFFFFF" 
      android:textSize="18sp" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingLeft="30dp" 
      android:paddingRight="30dp" 
      android:text="None" 
      android:textColor="#FFFFFF" 
      android:textSize="18sp" /> 
</LinearLayout> 

나는 subCategoryLayout가

subCategoryLayout.post(new Runnable() { 

       @Override 
       public void run() { 
        for (int i = 0; i < subCategoryLayout.getChildCount(); i++) { 
         Rect delegateArea = new Rect(); 
         TextView d = (TextView) subCategoryLayout.getChildAt(i); 
         d.getHitRect(delegateArea); 
         delegateArea.bottom += 50; 
         delegateArea.top += 200; 
         delegateArea.left += 50; 
         delegateArea.right += 50; 

         TouchDelegate expandedArea = new TouchDelegate(delegateArea, d); 
         subCategoryLayout.setTouchDelegate(expandedArea); 
//      if (View.class.isInstance(d.getParent())) { 
//       ((View) d.getParent()).setTouchDelegate(expandedArea); 
//      } 
        } 
       } 
      }); 
+0

문제가 해결 되었습니까? 나는 똑같은 문제를 겪고있다. 터치 위임을 사용하는 – hshed

+0

은 실제로 터치 영역을 늘리지 못했습니다. – heero

답변

0

첫 번째 점보기 하나의 TouchDelegate을 가질 수 있다는 것입니다있는 LinearLayout입니다) (onActivityCreated에서 다음 호출하고있다. 따라서 for 루프가 끝나면 마지막 TouchDelegate가 subCategoryLayout으로 설정됩니다. 하나의보기에 여러 개의 TouchDelegates를 추가하려는 경우 TouchDelegateComposite

두 번째 요지는 터치 영역을 상단에서 50dp로, 하단에서 200dp로 확장하려는 것입니다. 그러나 귀하의 subCategoryLayout 높이가 35dp이며 touchCustomLayout을 터치 한 터치 만 TouchDelegate로 전달됩니다. 따라서 터치 영역을 더 큰 값으로 확장하려면 TouchDelegate를 크기가 큰 일부 부모 레이아웃에 추가해야합니다. 이 방법을 사용하면 더 큰 레이아웃에 비해 delegateArea를 계산해야한다는 것을 명심해야합니다.

관련 문제