2015-10-19 67 views
2

我是Xamarin Android开发新手。我已经使用ViewPager创建了图像滑块。现在我想单击该ViewPager的图像。我可以实现该功能吗? 我曾尝试但不工作的:点击Viewpager Xamarin Android

{ 
    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(); 
} 

回答

5

只实现onclick listenerimageviewviewpager's适配器,如果你只有图像滑块。

编辑:全部来源的imagesliderviewpager从网站下载图像。

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

不要_context.GetSystemService.what是解决方案:

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; } } 
在活动

? @misho –

+0

@DhruvGohil编辑我的源代码 – arsena

+0

它说:使用未分配的局部变量“_context”。@ misho –