0

this tutorialに続きます(「フルスクリーンイメージスライドショー」までスクロールしてください)。フルスクリーンDialogFragmentを実装してイメージスライドショーを作成します。クリックしてダイアログを閉じる

ユーザーが画面上の任意の場所をクリックすると、DialogFragmentが閉じられるようにするにはどうすればよいですか?

OnClickListenercode here)を実装しようとしましたが、クリックイベントが発生することはありません。

public class SlideshowDialogFragment extends DialogFragment { 
    private ArrayList<Image> images; 

    private ViewPager viewPager; 

    private MyViewPagerAdapter myViewPagerAdapter; 

    private TextView lblCount, lblTitle, lblDate; 

    private int selectedPosition = 0; 

    static SlideshowDialogFragment newInstance() { 
     SlideshowDialogFragment f = new SlideshowDialogFragment(); 
     return f; 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.fragment_image_slider, container, false); 
     viewPager = (ViewPager) v.findViewById(R.id.viewpager); 
     lblCount = (TextView) v.findViewById(R.id.lbl_count); 
     lblTitle = (TextView) v.findViewById(R.id.title); 
     lblDate = (TextView) v.findViewById(R.id.date); 

     images = (ArrayList<Image>) getArguments().getSerializable("images"); 
     selectedPosition = getArguments().getInt("position"); 

     Log.e(TAG, "position: " + selectedPosition); 
     Log.e(TAG, "images size: " + images.size()); 

     myViewPagerAdapter = new MyViewPagerAdapter(); 
     viewPager.setAdapter(myViewPagerAdapter); 
     viewPager.addOnPageChangeListener(viewPagerPageChangeListener); 

     setCurrentItem(selectedPosition); 

     return v; 
    } 

    private void setCurrentItem(int position) { 
     viewPager.setCurrentItem(position, false); 
    } 

    // adapter 
    public class MyViewPagerAdapter extends PagerAdapter { 

     private LayoutInflater layoutInflater; 

     public MyViewPagerAdapter() { 
     } 

     @Override 
     public Object instantiateItem(ViewGroup container, int position) { 

      layoutInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View view = layoutInflater.inflate(R.layout.image_fullscreen_preview, container, false); 

      ImageView imageViewPreview = (ImageView) view.findViewById(R.id.image_preview); 

      Image image = images.get(position); 

      Glide.with(getActivity()).load(image.getLarge()) 
        .thumbnail(0.5f) 
        .crossFade() 
        .diskCacheStrategy(DiskCacheStrategy.ALL) 
        .into(imageViewPreview); 

      container.addView(view); 

      return view; 
     } 

     @Override 
     public int getCount() { 
      return images.size(); 
     } 

     @Override 
     public boolean isViewFromObject(View view, Object obj) { 
      return view == ((View) obj); 
     } 


     @Override 
     public void destroyItem(ViewGroup container, int position, Object object) { 
      container.removeView((View) object); 
     } 
    } 
} 

答えて

1

OnClickListenerを作成し、私は(https://pastebin.com/QNBQUJn7)ことを試みDialogFragment

+0

dismiss()方法を使用する:ここ

チュートリアルからDialogFragmentクラスがあります。 clickイベントはトリガされません。 – user685415

関連する問題