我正在开发一个项目,我正在使用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>
因此每个图像按钮都会有不同的图像。图片:
如何以编程方式实现此目标?
答案 0 :(得分:1)
这是一种在Java中使用它的动态方法,转换为C#非常简单。
您可以动态生成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。
希望它有所帮助。
CREDIT: @JASON G PETERSON