Click on Viewpager Xamarin Android

匿名 (未验证) 提交于 2019-12-03 02:33:02

问题:

I am new to Xamarin Android Development.I have created Image slider using ViewPager.Now I want click on image of that ViewPager.How can I implement that ? I have tried this but not worked:

{   viewpage = mview.FindViewById<ViewPager> (Resource.Id.viewpager);   viewpage.Adapter = new itemadapter (ChildFragmentManager);   viewpage.Click += Viewpage_Click; } public void Viewpage_Click (object sender, EventArgs e) {     ViewModel.DetailViewCommand.Execute (); } 

回答1:

Just implement onclick listener for imageview in viewpager's adapter if you have only image slider.

Edit: full source of imageslider viewpager that downloads images from web.

public class ImageSliderAdapter : PagerAdapter     {         Context _context;         List<string> _imageUrls;          public ImageSliderAdapter (Context context, List<string> imageUrls)         {             _imageUrls = imageUrls;             _context = context;         }          public override bool IsViewFromObject (Android.Views.View view, Java.Lang.Object @object)         {             return view == ((LinearLayout)@object);         }          public override int Count {             get {                 return _imageUrls.Count;             }         }          public override void DestroyItem (ViewGroup container, int position, Java.Lang.Object objectValue)         {         }          public override Java.Lang.Object InstantiateItem (ViewGroup container, int position)         {              View view = container;             var inflater = _context.GetSystemService (Context.LayoutInflaterService) as LayoutInflater;             view = inflater.Inflate (Resource.Layout.image_slider_item, null);             var child = view.FindViewById<ImageView> (Resource.Id.image_slider_item);             child.Click += (o, e) =>             {                 //your code here             };              Bitmap image = null;             Task.Run (() => {                 URL url = new URL (_imageUrls [position]);                 image = BitmapFactory.DecodeStream (url.OpenConnection ().InputStream);             }).ContinueWith (t => {                 (_context as MainView).RunOnUiThread (() => {                     child.SetImageBitmap (image);                 });             });              container.AddView (view);             return view;         }     } 

in activity:

            var imageViewer = FindViewById<ViewPager> (Resource.Id.pager);             imageViewer.Adapter = new ImageSliderAdapter (this, imageUrls); 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!