当我在 android 中拖动顶视图时,背景视图需要变小

Background view needs to be small when I drag top view in android

我用 android BottomSheet 来复制这个。

拖动顶视图时背景视图需要变小。 我尝试了以下代码。任何可用于复制它的库。 我集成了 bottomsheet android 库

public class MainActivity extends AppCompatActivity implements CollapsibleCalendarView.Listener<Event> {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mCalendarView = (CollapsibleCalendarView) findViewById(R.id.calendar);
        mListView = (ListView) findViewById(R.id.calendar_event_list);
        mCalendarView.setListener(this);
        mCalendarView.addEvents(getEvents());

        bottomSheet = findViewById(R.id.design_bottom_sheet);
        behavior = BottomSheetBehavior.from(bottomSheet);

        behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
            @Override
            public void onStateChanged(@NonNull View bottomSheet, int newState) {
                switch (newState) {
                    case BottomSheetBehavior.STATE_DRAGGING:
                        Log.i("BottomSheetCallback", "BottomSheetBehavior.STATE_DRAGGING");
                        break;
                    case BottomSheetBehavior.STATE_SETTLING:

                        break;
                    case BottomSheetBehavior.STATE_EXPANDED:
                        mCalendarView.toggle();

                        break;
                    case BottomSheetBehavior.STATE_COLLAPSED:
                        mCalendarView.toggle();

                        break;
                    case BottomSheetBehavior.STATE_HIDDEN:

                        break;
                }
            }

            @Override
            public void onSlide(@NonNull View bottomSheet, float slideOffset) {
            }
        });

        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (behavior.getState() == BottomSheetBehavior.STATE_COLLAPSED) {
                    behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
                } else {
                    behavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
                }
            }
        });
    }
    }

当您滑动 bottomSheet 时,使用视图缩放来缩放顶视图。

@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {     
            // Add scaling code as per your requirements.    
    float scalingFactor = 0.5f; //       scale down to half the size     
    view.setScaleX(scalingFactor);       
    view.setScaleY(scalingFactor);        
} 

您需要 API 11 或以上才能缩放视图。