2017-02-08 6 views
0

단편에서 ButterKnife 문제가 있습니다.ButterKnife bind 단편 문제

예를 들어 2 조각이 있는데 첫 번째 조각에는 중간에 단추가 있습니다. SignUpClick 현재의 단편에서

@BindView(R.id.btnSignUp) 
Button btnSignUp; 

@OnClick(R.id.btnSignUp) 
public void signUpClick() { 

가 새 것으로 교체

는 :

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
transaction.setAllowOptimization(true); 
transaction.replace(R.id.frame_layout, fragment); 
transaction.addToBackStack(String.valueOf(fragment.getClass())); 
transaction.commit(); 

번째 단편도의 버튼을 포함이어서 제가 @BindView@OnClick 구현

unbinder = ButterKnife.bind(this, rootView); 

: I는 함께 바인딩 BindView 구현으로 화면 상단.

문제는 - 내가 빈 영역으로 화면의 중앙에 탭하면 signUpClick가 확실하지 해고 어디에 내 실수하거나 ButterKnife 실수를하다 단편 가기 backstack에 배치됩니다 그것 때문에

+0

'transaction.popBackStack();'을 사용하여 이전 조각을 팝핑하는 방법은? 새 조각을 추가하기 전에 호출하십시오. –

답변

0

. 따라서 두 번째 조각이 클릭 동작을 취하지 않으면 첫 번째 조각으로 전달됩니다.

두 번째 조각 버튼에도 클릭 리스너를 추가해야합니다.

0

빈 몸체가있는 두 번째 조각의 루트에 클릭 수신기를 추가하기 만하면됩니다. 가정하면 R.id.root_fragment2 두 번째 조각의 루트 레이아웃의 ID입니다.

@OnClick(R.id.root_fragment2) 
public void onRootClicked() { 
} 

이제 두 번째 조각이 클릭을 소비하고 아래 조각으로 전달되지 않습니다.

0

두 번째 조각이 화면 상단에 있지만 터치 이벤트가 발생하면 두 번째 조각이 이벤트를 소비하지 않으면 첫 번째 조각이 여전히 터치 이벤트를 받아 들일 수 있습니다. 조각에 루트보기가 있으면 다음과 같이보기를 설정할 수 있습니다. rootView.setClickable (true);