Android Xamarin TreeView nLevels
我花了很多时间来发现如何在Android Xamarin中实现TreeView,但不幸的是似乎没有任何关于它的例子。
我尝试使用ExpandableListView但它只支持2级类别。 我需要有人可以通过这些内容或某些例子说明这一点。
目的是探索服务器上的文件夹!
非常感谢。
目的是探索服务器上的文件夹!
您可以使用绑定库导入一些Java库,例如AndroidTreeView 。
例如,我从这个项目创建了一个.aar库。 然后代码如下:
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); //create root TreeNode root = TreeNode.InvokeRoot(); TreeNode parent = new TreeNode("parent"); TreeNode child0 = new TreeNode("ChildNode0"); TreeNode child1 = new TreeNode("ChildNode1"); TreeItem item = new TreeItem() { text = "abc" }; TreeNode child10 = new TreeNode(item).SetViewHolder(new MyHolder(this)); child1.AddChild(child10); parent.AddChildren(child0, child1); root.AddChild(parent); AndroidTreeView atv = new AndroidTreeView(this, root); LinearLayout rootlayout = FindViewById(Resource.Id.rootlayout); rootlayout.AddView(atv.View); rootlayout.Invalidate(); }
TreeItem
的创建方式如下:
public class TreeItem : Java.Lang.Object { public string text; }
MyHolder
是这样的:
public class MyHolder : TreeNode.BaseNodeViewHolder { private Context mcontext; public MyHolder(Context context) : base(context) { mcontext = context; } public override View CreateNodeView(TreeNode p0, Java.Lang.Object p1) { var inflater = LayoutInflater.FromContext(mcontext); var view = inflater.Inflate(Resource.Layout.itemview, null, false); TextView tv = view.FindViewById(Resource.Id.itemtv); var item = p1 as TreeItem; tv.Text = item.text; return view; } }
这是演示 ,你可以在那里找到.aar lib 。
上述就是C#学习教程:Android Xamarin TreeView nLevels分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1008019.html