Я использую DraggblePanel для того же типа эффекта
private void initializeDraggablePanel(Fragment fragmentView, Fragment bottomFragment) {
draggablePanel.removeAllViews();
draggablePanel.setFragmentManager(getSupportFragmentManager());
draggablePanel.setTopFragment((Fragment) fragmentView);
draggablePanel.setBottomFragment(bottomFragment);
draggablePanel.setVisibility(View.VISIBLE);
draggablePanel.setClickToMaximizeEnabled(true);
draggablePanel.setDraggableListener(new DraggableListener() {
@Override
public void onClosedToLeft() {
draggablePanel.removeAllViews();
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
@Override
public void onMinimized() {
isFullScFromMini = true;
pipHandler.removeCallbacks(runnapipa);
pipHandler.postDelayed(runnapipa, PIP_DELAY);
draggablePanel.disableBottomView(true);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
@Override
public void onClosedToRight() {
draggablePanel.removeAllViews();
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
@Override
public void onUnMaximized() {
draggablePanel.disableBottomView(false);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
@Override
public void onMaximized() {
isFullScFromMini = true;
pipHandler.removeCallbacks(runnapipa);
pipHandler.postDelayed(runnapipa, PIP_DELAY);
draggablePanel.disableBottomView(false);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
}
});
TypedValue typedValue = new TypedValue();
getResources().getValue(R.dimen.x_scale_factor, typedValue, true);
float xScaleFactor = typedValue.getFloat();
typedValue = new TypedValue();
getResources().getValue(R.dimen.y_scale_factor, typedValue, true);
float yScaleFactor = typedValue.getFloat();
draggablePanel.setXScaleFactor(xScaleFactor);
draggablePanel.setYScaleFactor(yScaleFactor);
draggablePanel.setTopViewHeight(
getResources().getDimensionPixelSize(R.dimen.top_fragment_height));
draggablePanel.setTopFragmentMarginRight(
getResources().getDimensionPixelSize(R.dimen.top_frag_right_margin));
draggablePanel.setTopFragmentMarginBottom(
getResources().getDimensionPixelSize(R.dimen.top_fragment_margin));
draggablePanel.initializeView();
draggablePanel.maximize();
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
}
Для полной проверки примера Ссылка