我正在开发一个android应用程序,但遇到了要实现的复杂布局层次结构.该应用程序将列出一个咖啡厅的菜单.截至目前,菜单如下所示:
该列表实现为RecyclerVIEw.视图的自定义适配器负责每个元素的 *** 作.触摸一个元素会增加定单价格,并将1加到所有选定元素中.您也可以单击数字以获取代答对话框并更改金额.
您可以想象那里有很多代码.
这是我要实现的理论布局:
我专注于内部ExpandableListVIEw.基本上我想按食物,饮料等对菜单项进行分类.
我的问题是我不知道如何保留项目布局的“复杂性”.我已经设法仅使用项目名称创建了一个简单的ExpandableListVIEw,如下所示:
但是我真的不知道如何使用我为ExpandableListVIEw中的先前布局创建的项目适配器.不幸的是,我不能共享太多代码,但是我并不需要代码片段,而是更多关于如何实现此功能的指导,想法,技巧…这是我的第一个AndroID应用程序:-)
任何帮助将不胜感激.
非常感谢!
解决方法:
好吧,我找到了解决我问题的方法,但最终并没有那么复杂.我会尝试总结一下,以防有人遇到同样的情况.
首先,您将必须为ExpandableListVIEw创建一个自定义适配器.我以前的RecyclerVIEw确实有一个自定义适配器,它使用了VIEwHolder模式,这使我感到困惑.
实际上,This示例对于了解如何实现自定义适配器非常有用.覆盖的重要方法是getChildVIEw.用这种方法可以构造整个子视图.
@OverrIDepublic VIEw getChildVIEw(int Listposition, final int expandedListposition, boolean isLastChild, VIEw convertVIEw, VIEwGroup parent) { final MenuItem item = (MenuItem) getChild(Listposition, expandedListposition); if (convertVIEw == null) { LayoutInflater layoutInflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertVIEw = layoutInflater.inflate(R.layout.menu_item, null); } // Save final reference to be able to access it in inner classes final VIEw finalConvertVIEw = convertVIEw; // Set the item name TextVIEw itemname = (TextVIEw) convertVIEw.findVIEwByID(R.ID.item_menu_name); itemname.setText(item.getname()); // Set item price TextVIEw itemPrice = (TextVIEw) convertVIEw.findVIEwByID(R.ID.item_menu_price); itemPrice.setText(item.getFormattedPrice());
这不是完整的代码,但是您可以看到如何在menu_item.xml布局中获取视图并填充它们:-)
在我使用Android data bingind之前,但我不知道如何在没有VIEwHolder的情况下使用它.
总结以上是内存溢出为你收集整理的Android ExpandableListView具有自定义项目的复杂布局全部内容,希望文章能够帮你解决Android ExpandableListView具有自定义项目的复杂布局所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)