Skip to content

Commit 052e87b

Browse files
committed
修改了图片fragment传参的方式
1 parent 94adc82 commit 052e87b

File tree

3 files changed

+25
-20
lines changed

3 files changed

+25
-20
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,10 @@ PhotoViewer
9090

9191
## 更新日志
9292

93+
### 0.44
94+
95+
修改了图片fragment传参的方式
96+
9397
### 0.43
9498

9599
修复了图片放大到最大点击退出崩溃的问题

photoviewer/src/main/java/com/wanglu/photoviewerlibrary/PhotoViewer.kt

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ object PhotoViewer {
4343
private var indicatorType = INDICATOR_TYPE_DOT // 默认type为小圆点
4444

4545

46-
47-
4846
/**
4947
* 小圆点的drawable
5048
* 下标0的为没有被选中的
@@ -205,7 +203,7 @@ object PhotoViewer {
205203
/**
206204
* 文字版本当前页
207205
*/
208-
var tv:TextView ?= null
206+
var tv: TextView? = null
209207

210208

211209

@@ -223,11 +221,7 @@ object PhotoViewer {
223221
}
224222

225223
}
226-
val b = Bundle()
227-
b.putString("pic_data", imgData[i])
228-
b.putIntArray("exit_location", getCurrentViewLocation())
229-
b.putIntArray("img_size", intArrayOf(getItemView().measuredWidth, getItemView().measuredHeight))
230-
f.arguments = b
224+
f.setData(intArrayOf(getItemView().measuredWidth, getItemView().measuredHeight), getCurrentViewLocation(), imgData[i], true)
231225
f.longClickListener = longClickListener
232226
fragments.add(f)
233227
}
@@ -275,18 +269,13 @@ object PhotoViewer {
275269
/**
276270
* 设置文字版本当前页的值
277271
*/
278-
if(tv != null){
272+
if (tv != null) {
279273
tv!!.text = "${currentPage + 1}/${imgData.size}"
280274
}
281275

282276
// 这里延时0.2s是为了解决上面👆的问题。因为如果刚调用ScrollToPosition方法,就获取itemView是获取不到的,所以要延时一下
283277
Timer().schedule(timerTask {
284-
val b = Bundle()
285-
b.putString("pic_data", imgData[currentPage])
286-
b.putIntArray("img_size", intArrayOf(getItemView().measuredWidth, getItemView().measuredHeight))
287-
b.putBoolean("in_anim", false)
288-
b.putIntArray("exit_location", getCurrentViewLocation())
289-
fragments[currentPage].arguments = b
278+
fragments[currentPage].setData(intArrayOf(getItemView().measuredWidth, getItemView().measuredHeight), getCurrentViewLocation(), imgData[currentPage], false)
290279
}, 200)
291280

292281
}

photoviewer/src/main/java/com/wanglu/photoviewerlibrary/PhotoViewerFragment.kt

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,20 @@ class PhotoViewerFragment : BaseLazyFragment() {
1515
var exitListener: OnExitListener? = null
1616
var longClickListener: OnLongClickListener? = null
1717

18+
private var mImgSize = IntArray(2)
19+
private var mExitLocation = IntArray(2)
20+
private var mInAnim = true
21+
private var mPicData = ""
22+
/**
23+
* 每次选中图片后设置图片信息
24+
*/
25+
fun setData(imgSize: IntArray, exitLocation: IntArray, picData: String, inAnim: Boolean) {
26+
mImgSize = imgSize
27+
mExitLocation = exitLocation
28+
mInAnim = inAnim
29+
mPicData = picData
30+
}
31+
1832
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
1933

2034
return inflater.inflate(R.layout.item_picture, container, false)
@@ -25,11 +39,9 @@ class PhotoViewerFragment : BaseLazyFragment() {
2539
}
2640

2741

42+
2843
override fun onLazyLoad() {
2944

30-
val mExitLocation: IntArray = arguments!!.getIntArray("exit_location")
31-
val mImgSize: IntArray = arguments!!.getIntArray("img_size")
32-
val mPicData = arguments!!.getString("pic_data")
3345

3446
if (PhotoViewer.mInterface != null) {
3547
PhotoViewer.mInterface!!.show(mIv, mPicData)
@@ -41,7 +53,7 @@ class PhotoViewerFragment : BaseLazyFragment() {
4153
mIv.setExitLocation(mExitLocation)
4254
mIv.setImgSize(mImgSize)
4355
mIv.setOnLongClickListener {
44-
if(longClickListener != null){
56+
if (longClickListener != null) {
4557
longClickListener!!.onLongClick(it)
4658
}
4759
true
@@ -76,7 +88,7 @@ class PhotoViewerFragment : BaseLazyFragment() {
7688
}
7789

7890
// 添加点击进入时的动画
79-
if (arguments!!.getBoolean("in_anim", true))
91+
if (mInAnim)
8092
mIv.post {
8193

8294
val scaleOa = ObjectAnimator.ofFloat(mIv, "scale", mImgSize[0].toFloat() / mIv.width, 1f)

0 commit comments

Comments
 (0)