1

요, 기각하기플로팅 작업의 스 와이프하면 정지 응용 프로그램

빠른 컨텍스트 :

내가 어떤에 사용되는 특정 코디네이터 레이아웃보기에서 내 응용 프로그램을 통해 내가 표시 모든 뷰 구성 요소를 호스팅하는 하나의 FragmentActivity이 snackbars 나는 스 와이프 - 투 - 해고 효과를 얻기 위해 만든다.

활동 XML

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/cl_snackbar" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

활동 클래스

@BindView(R.id.cl_snackbar)    View snackBar; 

/** 
* To allow for use of a snackbar throughout the app's fragments 
*/ 
public View getSnackBar() { 
    return snackBar; 
} 

조각 클래스

@Nullable private View snackBar; 

//This is done in fragment's onCreateView() 
if (getActivity() instanceof ParentActivity) snackBar = ((ParentActivity) getActivity()).getSnackBar(); 

//This is done in a method 
if (snackBar != null) Snackbar.make(snackBar, "Working", Snackbar.LENGTH_LONG).show(); 

이 FUNC 필사적으로 작년에 완벽하게 작동했지만 26.1.0에서 내 안드로이드 지원 라이브러리를 27.0.0으로 최근에 업데이트했으며 스 와이프 - 투기 해제 효과로 앱이 완전히 정지되었습니다. 반응이 없습니다. 로그 캣에서 나는 다음과 같은 경고 얻을 : 나는 Android 27.0.0 changes 에서 DIFF 변경 throught를 확인했습니다

E/ViewDragHelper: Ignoring pointerId=0 because ACTION_DOWN was not received for this pointer before ACTION_MOVE. It likely happened because ViewDragHelper did not receive all the events in the event stream. 
E/ViewDragHelper: Ignoring pointerId=-1 because ACTION_DOWN was not received for this pointer before ACTION_MOVE. It likely happened because ViewDragHelper did not receive all the events in the event stream. 
E/ViewDragHelper: Ignoring pointerId=-1 because ACTION_DOWN was not received for this pointer before ACTION_MOVE. It likely happened because ViewDragHelper did not receive all the events in the event stream. 
E/ViewDragHelper: Ignoring pointerId=-1 because ACTION_DOWN was not received for this pointer before ACTION_MOVE. It likely happened because ViewDragHelper did not receive all the events in the event stream. 

을하지만 관련된 지원 클래스의 함께 할 수있는 변경 사항이 표시되지 않습니다. 누군가 갑자기 잘못 된 것에 대한 도움이나 힌트를 줄 수 있습니까?

+0

현재 같은 문제가있어 문제를 해결하는 데 성공 했습니까? – Mayeul

+0

아니요. 평균적으로 버전 26.1.0으로 되돌려 야했습니다. ( – HaroldHibari

+1

모든 요소를 ​​포함하여 레이아웃에서 코디네이터 레이아웃의 위치가 변경되었으므로 이제는 작동합니다 ... – Mayeul

답변

0

슬쩍 삭제하면 행동 수정 문제를 :) 기각하는

경우
snackBar.addCallback(object : BaseTransientBottomBar.BaseCallback<Snackbar>() { 
     override fun onShown(transientBottomBar: Snackbar) { 
      val layoutParams = transientBottomBar.view.layoutParams as? CoordinatorLayout.LayoutParams 
      layoutParams?.let { it.behavior = null } 
     } 
    }) 

당신이해야 후 행동 및 취급 터치 이벤트와 requestDisallowInterceptTouchEvent (false)를하기 전에 (사실) requestDisallowInterceptTouchEvent 삽입을 복사해야합니다 동작을 저장해야하는 경우 문제 해결