1

我已經創建了一個recyclerView,其中有一個recycleviewonBindView Holder方法我想設置有每個recyclerview行對話框(自定義對話框)有一個圖像,當我將點擊的形象recyclerview一個對話框會從底部出現相同的圖像,當我點擊任何地方的對話框應該停下來。RecyclerView onBindviewholder對話框clicklistner動畫

注:recylerview進來的數據是從凌空庫

+0

你能告訴我你適配器 –

回答

1

首先,你必須創建一個自定義對話框。

dialog_image.xml

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:background="@color/white" 
    android:layout_width="260dp" 
    android:layout_height="270dp"> 

    <ImageView 
     android:id="@+id/dialog_iv" 
     android:layout_width="260dp" 
     android:layout_height="260dp" 
     /> 

</LinearLayout> 

OnbindViewHolder()適配器的類:

holder.medPic.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       final Dialog dialogi = new Dialog(context); 
       dialogi.requestWindowFeature(Window.FEATURE_NO_TITLE); 
       dialogi.setCancelable(true); 
       dialogi.setContentView(R.layout.dialog_image); 
       // dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 


       ImageView dialogIv = (ImageView)dialogi.findViewById(R.id.dialog_iv); 


       Picasso.with(context) 
         .load(data.get(position).getMedicine_img_url().replace(" ","%20").trim()) 
         .into(dialogIv); 
       dialogi.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation_2; //style id 
       dialogi.show(); 

       dialogIv.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         dialogi.dismiss(); 
        } 
       }); 


      } 
     }); 
    } 

Style.xml將這個代碼:

<style name="DialogAnimation_2"> 
    <item name="android:windowEnterAnimation">@anim/slide_up_dialog</item> 
    <item name="android:windowExitAnimation">@anim/slide_out_down</item> 
</style> 

裏面資源創建一個文件夾阿尼姆動畫中文件夾放有兩種動畫RES文件:

slide_up_dialog:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
    android:duration="@android:integer/config_mediumAnimTime" 
    android:fromYDelta="100%" 
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:toXDelta="0"> 
</translate> 

slide_out_down:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
    android:duration="@android:integer/config_mediumAnimTime" 
    android:fromYDelta="0%p" 
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:toYDelta="100%p"> 
</translate> 

+1

感謝的代碼,你的回答工作罰款我的代碼。 @Abhishek庫馬爾 – krchandra