android-layout - 我想使用带有静态页脚的 View Pager 来实现图片库。在页脚我有 3 个按钮下载、分享和收藏
问题描述
现在的问题是,当我喜欢第一张图片时,剩余的图片也会显示红色的心形图标,反之亦然……任何人都可以帮助我如何通过滑动图片来更改页脚中的图标吗?
通过单击收藏按钮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 的当前位置更改页脚
推荐阅读
- c# - 以高性能的方式使用 C# 获取所选字符的第一次和最后一次出现之间的字符串
- java - 超级构造函数调用顺序
- java - Spring Boot 多部分文件上传 - 提高性能的技巧
- javascript - 将数据从 php foreach 循环传递到 javascript
- signal-processing - 陀螺仪在高加速度下的非恒定漂移
- certificate - How do e-Signature companies create valid digital signatures
- django - 对相关模型的属性施加约束
- javascript - 我可以在mounted() vuejs 中使用$store.commit() 吗?
- html - 如何为scrapy编写css选择器?
- c# - 为什么当我在没有 std::cout 打印输出的情况下运行应用程序时未命中此断点