2017-12-17 6 views
1

자식보기를 포함하여 탭 가능하게 만들고 싶은 상대 레이아웃이 있습니다. 자식보기가있는보기 그룹의 onclicklistener

<RelativeLayout 
    android:id="@+id/houses_rel_1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="10dp" 
    android:background="@drawable/white_grey_border_bottom"> 

    <HorizontalScrollView 
     android:id="@+id/houses_1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:duplicateParentState="true" 
     android:scrollbars="none"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      ... 
     </LinearLayout> 
    </HorizontalScrollView> 

    <TextView... /> 
    ..... 
</RelativeLayout> 

layout

내가 상대 레이아웃, 가로보기 및 textviews 및 아이콘 별도의 OnClickListener를 상에 OnClickListener를 설정하려는

.

@BindView(R.id.houses_rel_1) 
ViewGroup mHouse; 

@BindView(R.id.fav_icn_1) 
ImageView mFavIcn; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_house_list); 
    ButterKnife.bind(this); 

    mHouse.setOnClickListener(new ViewGroup.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent intent = new Intent(mContext, SomeActivity.class); 
      mContext.startActivity(intent); 
     } 
    }); 
    mFavIcn.setOnClickListener(new View.OnClickListener() { 
     ... 
    }); 
} 

현재, 나는 textview들에 탭하면 새로운 활동 만 쳐다보고,하지만 난 horizontalscrollview에 누를 때 아무 반응이 없습니다. onclicklistener를 horizontalscrollview으로 복제해야합니까?

@OnClick({ R.id.houses_1, R.id.houses_rel_1 }) 
public void startSomeActivity() { 
    Intent intent = new Intent(mContext, SomeActivity.class); 
     mContext.startActivity(intent); 
} 

답변

0

봅니다 버터 나이프의 onclick을 그룹화.

음 ... 이유는 매우 복잡합니다. 내가 HorizontalScrollView.java의 소스 코드를 읽은 후, 나는 그것이 View 또는 ViewGroup의 이러한 방법보다 우선합니다 발견 - onTouchEvent, onInterceptTouchEvent .Without이 super.onTouchEvent를 사용하여 당신이 (HorizontalScrollView)에 OnClickListener를 설정하면, super.onInterceptTouchEvent .IT는 부분적으로 onClick 이벤트가 결코 의미 호출된다.

자세한 내용을 알고 싶으면 소스 코드도 읽을 수 있습니다. 그때 내가 당신에게 이유를 말하면 더 도움이 될 것입니다, 사촌 나는 읽을 때 약간의 오해가있을 수 있습니다.

여러분을 돕기를 바랍니다.

1

horizontalScrollView 대신 setOnClickListener()setOnTouchListener()을 사용하십시오 :

+0

문제가 해결 되나요? –