Xamarin.android使用axml动态创建对象

时间:2017-07-19 08:59:49

标签: c# android xamarin.android

我的应用程序需要在屏幕底部重复项目的视图。可以有比屏幕空间更多的项目。因此我需要一个Horizo​​ntalScrollView(我尝试使用listview和自定义适配器,但没有本地方式来获取水平列表视图)。我想动态创建项目。

现在问题是:当我在代码中生成项目时,我可以使用我的axml(xml?)文件来定义项目的结构吗?

我的xml文件包含一个带有一些textview的线性布局。

1 个答案:

答案 0 :(得分:1)

  

我需要一个Horizo​​ntalScrollView(我尝试使用listview和自定义适配器,但没有本地方法来获取水平列表视图)。

您可以使用RcyclerView来达到此效果。它执行了与ListView相同的工作,它显示列表或网格中的项目集合。以下是关于如何在RecyclerView中使用Xamarin.Android的{​​{3}}以及document中的{s}代码。

当您想要在Horizontal中显示项目时,您只需要提供RecyclerView horizontaLayoutlManager代码,如下所示:

 LinearLayoutManager horizontalManager = new  LinearLayoutManager(this, LinearLayoutManager.Horizontal,false);
 recyclerView.SetLayoutManager(horizontalManager);
  

现在问题是:当我在代码中生成项目时,我可以使用我的axml(xml?)文件来定义项目的结构吗?

如果您使用RecyclerView,则可以在覆盖here方法时对.axml进行充气,.axml罚款将定义RecyclerView的结构项目,代码如下:

public override RecyclerView.ViewHolder OnCreateViewHolder (ViewGroup parent, int viewType)
{
     // Inflate the item for the RecyclerView:
     View itemView = LayoutInflater.From (parent.Context).Inflate (Resource.Layout.youraxml, parent, false);

     // Create a ViewHolder to hold view references inside the CardView:
     YourViewHolder vh = new YourViewHolder (itemView);
     return vh;
}