2015-02-11 71 views
2

我需要在Android应用程序中创建一个自定义GridView(使用Xamarin插件开发VS2012)。 我需要在每个单元格上显示图像和标签文本。Xamarin:创建一个自定义的网格视图

这个例子完美地工作,但没有文本标签。 http://developer.xamarin.com/guides/android/user_interface/grid_view/

我需要什么,这怎么: Custom Grid View {Image+Text}

但我只发现了Java的例子。 请帮帮我

PD:对不起图片,但我无法上传图片(我需要更多的声望)。

回答

3

创建一个具有ImageView & TextView的新布局。然后,在ImageAdapter类的GetView方法,膨胀该布局并填充它,例如:

public override View GetView (int position, View convertView, ViewGroup parent) 
{ 
    View view; 

    if (convertView == null) 
    { 
     view = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.my_grid_row, parent, false); 
    } 
    else 
    { 
     view = convertView; 
    } 


    var imageView = view.FindViewById<ImageView>(Resource.Id.my_image_view); 
    imageView.SetImageResource (thumbIds[position]); 

    var textView = view.FindViewById<TextView>(Resource.Id.my_text_view); 
    textView.Text = "Text to Display"; 

    return view; 
} 

编辑:(添加到代码 “(” 和 “;”)

更新:下面是一个示例布局文件,my_grid_row.axml,由该GetView方法虚增:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="250dp" 
     android:scaleType="centerCrop" 
     android:id="@+id/my_image_vieww" /> 
    <TextView 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/my_text_view" /> 
</LinearLayout> 
+0

您好,感谢响应我有一个问题:是否需要创建一个单元格中的.axml和gridview中的.axml? – 2015-02-12 13:17:53

+0

只需要一个.AXML就可以了。您可以使用LinearLayout来保存ImageView和TextView。 – 2015-02-12 18:21:14

+0

你可以帮我在自定义gridview中的其他问题?谢谢 – 2015-02-23 18:55:59