我想使用带有静态页脚的 View Pager 来实现图片库。在页脚我有 3 个按钮下载、分享和收藏
I want to implement Image Gallery using View Pager with static footer. In footer I have 3 button download, share and Favorite
现在的问题是,当我喜欢第一张图片时,其余图片也显示红心图标,反之亦然...任何人都可以帮助我如何通过滑动图片?
通过点击收藏按钮 ivFavImage
调用以下侦听器
if (databaseHandler.checkData(DatabaseModel(stringPaths[vpSingleItem.currentItem]))) {
ivFavImage.setImageResource(R.drawable.ic_favorite_red)
} else if (!databaseHandler.checkData(DatabaseModel(stringPaths[vpSingleItem.currentItem]))){
ivFavImage.setImageResource(R.drawable.ic_favorite_white)
}
ivFavImage.setOnClickListener {
if (!databaseHandler.checkData(DatabaseModel(stringPaths[vpSingleItem.currentItem]))) {
databaseHandler.insertData(DatabaseModel(stringPaths[vpSingleItem.currentItem]))
ivFavImage.setImageResource(R.drawable.ic_favorite_red)
Toast.makeText(context, "Image added to Favorite Designs", Toast.LENGTH_SHORT)
.show()
} else if (databaseHandler.checkData(DatabaseModel(stringPaths[vpSingleItem.currentItem]))) {
databaseHandler.deleteImage(DatabaseModel(stringPaths[vpSingleItem.currentItem]))
ivFavImage.setImageResource(R.drawable.ic_favorite_white)
Toast.makeText(context, "Image removed from Favorite Designs", Toast.LENGTH_SHORT)
.show()
}
}
我已将布局声明为这样
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:orientation="vertical"
android:weightSum="1">
<androidx.viewpager.widget.ViewPager
android:id="@+id/vpSingleItem"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.9" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.1"
android:background="@color/colorPrimaryDark">
<ImageView
android:id="@+id/ivDownloadImage"
android:layout_width="30dp"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginStart="10dp"
android:src="@drawable/download_white" />
<ImageView
android:id="@+id/ivFavImage"
android:layout_width="30dp"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_favorite_white" />
<ImageView
android:id="@+id/ivShareImage"
android:layout_width="30dp"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="10dp"
android:src="@drawable/share_icon" />
</RelativeLayout>
</LinearLayout>
更改 viewPager.setOnPageChangeListener()
中的图标状态
从您的模型获取图标状态并根据 viewPager 的当前位置更改页脚
现在的问题是,当我喜欢第一张图片时,其余图片也显示红心图标,反之亦然...任何人都可以帮助我如何通过滑动图片?
通过点击收藏按钮 ivFavImage
调用以下侦听器
if (databaseHandler.checkData(DatabaseModel(stringPaths[vpSingleItem.currentItem]))) {
ivFavImage.setImageResource(R.drawable.ic_favorite_red)
} else if (!databaseHandler.checkData(DatabaseModel(stringPaths[vpSingleItem.currentItem]))){
ivFavImage.setImageResource(R.drawable.ic_favorite_white)
}
ivFavImage.setOnClickListener {
if (!databaseHandler.checkData(DatabaseModel(stringPaths[vpSingleItem.currentItem]))) {
databaseHandler.insertData(DatabaseModel(stringPaths[vpSingleItem.currentItem]))
ivFavImage.setImageResource(R.drawable.ic_favorite_red)
Toast.makeText(context, "Image added to Favorite Designs", Toast.LENGTH_SHORT)
.show()
} else if (databaseHandler.checkData(DatabaseModel(stringPaths[vpSingleItem.currentItem]))) {
databaseHandler.deleteImage(DatabaseModel(stringPaths[vpSingleItem.currentItem]))
ivFavImage.setImageResource(R.drawable.ic_favorite_white)
Toast.makeText(context, "Image removed from Favorite Designs", Toast.LENGTH_SHORT)
.show()
}
}
我已将布局声明为这样
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:orientation="vertical"
android:weightSum="1">
<androidx.viewpager.widget.ViewPager
android:id="@+id/vpSingleItem"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.9" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.1"
android:background="@color/colorPrimaryDark">
<ImageView
android:id="@+id/ivDownloadImage"
android:layout_width="30dp"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginStart="10dp"
android:src="@drawable/download_white" />
<ImageView
android:id="@+id/ivFavImage"
android:layout_width="30dp"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_favorite_white" />
<ImageView
android:id="@+id/ivShareImage"
android:layout_width="30dp"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="10dp"
android:src="@drawable/share_icon" />
</RelativeLayout>
</LinearLayout>
更改 viewPager.setOnPageChangeListener()
从您的模型获取图标状态并根据 viewPager 的当前位置更改页脚