2017-07-11 3 views
2

写真付きのプロフィールクラスがあります。写真をクリックすると、オーバーレイが表示されます。私はクローズイメージで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" /> 

答えて

3

私が見つけた解決策..助けてください:

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() 
+0

それは私のための仕事だ、ありがとう –