Questions tagged «android-viewpager2»


7
页面必须填满整个ViewPager2(使用match_parent)
我有一个项目布局,在其中显示图像,产品名称和产品图像。我必须使用约束布局以1:1.5的比例显示图像。但是,当我加载小图像时,下面的文本不显示。 以下是我的XML项目代码:- <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/coordinatorLayoutCartRoot" android:layout_width="match_parent" android:layout_height="match_parent"> <com.jackandphantom.circularimageview.RoundedImage android:id="@+id/imageViewSlider" android:layout_width="match_parent" android:layout_height="0dp" android:scaleType="centerCrop" app:layout_constraintBottom_toTopOf="@id/tvTitle" app:layout_constraintDimensionRatio="WH,1:1.4" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:rounded_radius="0" tools:src="@tools:sample/avatars" /> <TextView android:id="@+id/tvTitle" android:layout_width="0dp" android:layout_height="wrap_content" android:gravity="center" android:padding="4dp" android:text="Fitted crew neck sweater" android:textColor="@color/colorBlack" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/imageViewSlider" /> <TextView android:id="@+id/tvPrice" android:layout_width="0dp" android:layout_height="wrap_content" android:gravity="center" android:padding="4dp" android:text="$34.00" android:textColor="@color/colorBlack" android:textStyle="bold" …

1
ViewModel状态的ViewPager2 / Tabs问题
我正在遵循MVVM模式-意味着每个片段都有一个ViewModel。 我使用ViewPager2 添加了两个选项卡。 我的适配器如下所示: @Override public Fragment createFragment(int position) { switch (position) { case 0: return new MergedItemsFragment(); case 1: return new ValidatedMergedItemsFragment(); } return new MergedItemsFragment(); } 选项卡正在工作。但是,我注意到我的MergedItemsFragment的ViewModel行为异常。在添加选项卡之前,我像这样导航到片段: NavHostFragment.findNavController(this).navigate(R.id.action_roomFragment_to_itemsFragment); 当我将该片段留给NavHostFragment.findNavController(this).popBackStack()以后再返回该片段时,我将得到一个新的空ViewModel。这是有意的。 使用新方法,我正在使用return new MergedItemsFragment()。当我离开该片段并稍后返回时,我得到一个包含旧数据的ViewModel 。这是一个问题,因为旧数据不再相关,因为用户在另一个片段中选择了不同的数据。 更新#1 我意识到他实际上将所有旧的Fragments保留在内存中,因为同一打印语句被多次调用。它的调用时间随着我离开并返回该屏幕的次数而增加。因此,如果我离开并返回10次并旋转设备,他实际上将执行10次一行。有人猜测如何以与ViewModels一起使用的方式来实现带有导航组件的Tabs / ViewPagers吗? 更新#2 我将ViewModels设置如下: viewModel = new ViewModelProvider(this, providerFactory).get(MergedItemViewModel.class) 我得到相同的结果: viewModel = ViewModelProviders.of(this).get(MergedItemViewModel.class); …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.