我有一张带照片的个人资料类。当我点击照片时,它显示叠加。我需要通过关闭图像上的clickink关闭此叠加层。所以,我无法实现它。
当我尝试这样做时有课:
ProfileClass.kt
class WorkerProfileFragment : BaseFragment() {
companion object {
fun createWorkerPhotoFragment() = WorkerProfileFragment()
}
override val layoutId: Int?
get() = R.layout.fragment_profile_worker
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
var imageViewer: ImageViewer? = null
val imageOverlayView = ImageOverlayView(context)
val url = "myURL"
val urls: List<String> = listOf(url)
imageOverlayView.close_btn.setOnClickListener {
imageViewer?.onDismiss()
}
sdv_photo_worker.setImageURI(url)
sdv_photo_worker.setOnClickListener {
imageViewer = ImageViewer.Builder(context, urls)
.setBackgroundColor(Color.BLACK)
.setStartPosition(0)
.allowSwipeToDismiss(false)
.hideStatusBar(false)
.setOverlayView(ImageOverlayView(context))
.show()
}
}
ImageOverlayView.kt
class ImageOverlayView(context: Context?) : RelativeLayout(context) {
init {
val view = View.inflate(context, R.layout.view_worker_photo_overlay, this)
view.findViewById(R.id.close_btn)?.setOnClickListener(closePhotoView(context))
}
fun closePhotoView(context: Context?): OnClickListener? {
return null
}
}
查看
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/close_btn"
android:clickable="true"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:src="@drawable/ic_close" />
请帮助..
答案 0 :(得分:1)
我找到的解决方案:
var imageViewer: ImageViewer? = null
imageViewer = ImageViewer.Builder(context, urls)
.setBackgroundColor(Color.BLACK)
.setStartPosition(0)
.allowSwipeToDismiss(false)
.hideStatusBar(false)
.setOverlayView(WorkerPhotoOverlayView(context))
.setOverlayView(WorkerPhotoOverlayView(context)
.apply {
this.close_btn.setOnClickListener {
imageViewer?.onDismiss()
}
})
.show()