如何以图像按钮下方的Im​​ageButtons和TextViews以编程方式创建gridview

时间:2015-10-29 16:25:06

标签: c# android gridview xamarin android-imagebutton

我正在开发一个项目,我正在使用XML视图为Visual Studio 2015使用Xamarin.Android插件。我需要为应用程序创建一个屏幕,ImageButtons的布局如下图所示,但我需要根据可以更改图像按钮显示的列表动态创建。最终结果看起来像图像,但根据列表中的内容可以显示更少的按钮。我不太确定如何解决这个问题,因为我没有使用过更少在xml中使用的GridViews。因此,基本上在代码中我到目前为止所有人都填充了列表:

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        SetContentView(Resource.Layout.MainMenu);
        List<User> configList = new List<User>(user.Configurations);


    }

xml layout代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:orientation="vertical"
    android:layout_height="match_parent"
    android:layout_centerHorizontal="true"
    android:id="@+id/LocationsRoot"
    android:gravity="center_vertical|center_horizontal">
    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar" />
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerInParent="true"
        android:orientation="vertical"
        android:layout_below="@id/toolbar">

        <Space
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/space2"
            android:layout_marginBottom="5dp"
            android:layout_weight="1" />
        <include
            android:id="@+id/bottomtoolbar"
            layout="@layout/toolbarbottom"
            android:layout_weight="0" />
    </LinearLayout>
</RelativeLayout>

因此每个图像按钮都会有不同的图像。图片:

enter image description here

如何以编程方式实现此目标?

1 个答案:

答案 0 :(得分:1)

这是一种在Java中使用它的动态方法,转换为C#非常简单。

Dynamic Grid Layout

您可以动态生成GridView。

GridView将根据您的需要包含ImageView和TextView。您必须使用自定义适配器。在其function my_ajax_navigation() { $requested_page = intval($_POST['page']); $posts_per_page = intval($_POST['posts_per_page']) - 1; $posts = get_posts(array( 'posts_per_page' => $posts_per_page, 'offset' => $page * $posts_per_page )); foreach ($posts as $post) { setup_postdata( $post ); // DISPLAY POST HERE // good thing to do would be to include your post template } exit; } add_action( 'wp_ajax_ajax_pagination', 'my_ajax_navigation' ); add_action( 'wp_ajax_nopriv_ajax_paginationr', 'my_ajax_navigation' ); 方法中,填充ImageView和TextView。

示例:

GridView item.xml:

getView

Java代码:

项目的POJO类:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imgItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/txtItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:fontFamily="trebuchet"
        android:textColor="@android:color/black"
        android:textSize="15sp"
        android:textStyle="bold" />

</LinearLayout>

适配器类:

public class Item
{
    String title;
    Drawable image;
    //getter setter
}

现在在Activity类中添加适配器数据,然后将该适配器设置为GridView。

Refer to thisthis

希望它有所帮助。

CREDIT: @JASON G PETERSON