需求:点击按钮可以将viewpager填充整个屏幕,再次点击则缩小至初始大小。
思路:1.使用constraintlayout布局,将屏幕内的其他控件都直接或间接的依赖于view pager控件
2.在按钮的点击事件里,动态修改viewPager的LayoutParams的宽度和高度。(相当于放大时将屏幕内其他的控件挤出屏幕)
xml代码:
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="870dp"
android:layout_height="622dp"
android:background="#000000"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.084"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.75" />
<Button
android:id="@+id/button_zoom"
android:layout_width="100dp"
android:layout_height="50dp"
android:alpha="0.5"
android:onClick="zoomPage"
android:text="缩放"
android:textSize="26sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/viewPager"
app:layout_constraintEnd_toEndOf="@id/viewPager"
app:layout_constraintStart_toStartOf="@id/viewPager" />
java代码:
public void zoomPage(View view) {
//获取布局参数
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) viewPager.getLayoutParams();
if (params.width == 0) {
params.width = 870;
params.height = 622;
} else {
params.width = 0;
params.height = 0;
}
viewPager.setLayoutParams(params);
viewPagerAdapter.reset();
}