当我在 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 或以上才能缩放视图。
我用 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 或以上才能缩放视图。