下面列出了android.support.design.widget.BottomSheetBehavior#BottomSheetCallback ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void waitUntilBottomSheetDisplayed() {
MaterialActivityChooserActivity activityChooserActivity = ActivityUtils.getCurrentActivity(mActivityRule);
BottomSheetBehavior.BottomSheetCallback originalBottomSheetCallback = SuperReflect.on(activityChooserActivity).get("mBottomSheetCallback");
if (!(originalBottomSheetCallback instanceof IdlingResourceBottomSheetCallback)) {
final BottomSheetBehavior bottomSheetBehavior = SuperReflect.on(activityChooserActivity)
.get("mBottomSheetBehavior");
/* The bottom sheet gets opened with a delay (using Handler#postDelayed())
* therefore we need to initially wait for the bottom sheet to get to the 'collapsed' state
*/
await().until(new Callable<Boolean>() {
@Override
public Boolean call() throws Exception {
return bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_COLLAPSED;
}
});
mIdlingResourceBottomSheetCallback = new IdlingResourceBottomSheetCallback(originalBottomSheetCallback, mBottomSheetIdlingResource);
bottomSheetBehavior.setBottomSheetCallback(mIdlingResourceBottomSheetCallback);
}
onView(withId(R.id.mac_bottom_sheet)).check(matches(isDisplayed()));
}
/**
* Set a {@link android.support.design.widget.BottomSheetBehavior.BottomSheetCallback} callback
* to our behavior, as soon as it is available.
*
* @param bottomSheetCallback desired callback.
*/
public void setBottomSheetCallback(final BottomSheetBehavior.BottomSheetCallback bottomSheetCallback) {
if (bottomSheetBehavior == null) {
delayedBottomSheetCallback = bottomSheetCallback;
} else {
bottomSheetBehavior.setBottomSheetCallback(bottomSheetCallback);
}
}
public void setBottomSheetCallback(BottomSheetBehavior.BottomSheetCallback callback) {
mCallback = callback;
}
public IdlingResourceBottomSheetCallback(BottomSheetBehavior.BottomSheetCallback wrappedCallback, CountingIdlingResource mBottomSheetIdlingResource) {
this.mWrappedCallback = wrappedCallback;
this.mBottomSheetIdlingResource = mBottomSheetIdlingResource;
}