我对可展开列表视图的平面位置和打包位置感到困惑。我在Google上搜索过,但我发现的是
平面列表位置:ListView及其适配器使用的位置
打包位置:一个长“打包”(bit twiddling)是什么类型的 position(group,child或null为header / footers)以及 位置值(组/子值)
但我仍然无法完全理解它。如果有人用例子解释我会很棒。
答案 0 :(得分:2)
自己找到解决方案:
平面位置是屏幕上视图的索引,无论哪种类型(子级或组)。如此图所示
虽然打包位置是一个很长的,它的值很少,比如视图类型(子或组)和使用二元运算符编码的视图的平面位置(如和&
或|
,shift { {1}}或<<
)。
答案 1 :(得分:0)
可扩展列表视图:
可扩展列表视图用于按类别对列表数据进行分组。它具有在用户触摸标题时扩展和折叠组的功能。
为了创建可扩展的列表视图,我们需要三个xml布局文件。第一个是主列表视图,第二个是列表视图组项,第三个是列表视图子项。
创建一个名为ExpandableListAdapter.java的新类文件,并从BaseExpandableListAdapter扩展它。该类提供了渲染listview所需的方法。
getGroupView() – Returns view for the list group header
getChildView() – Returns view for list child item
对于创建适配器,您必须为ExpandableListView创建DataList,如下所示:
* Preparing the list data
*/
private void prepareListData() {
listDataHeader = new ArrayList<String>();
listDataChild = new HashMap<String, List<String>>();
// Adding child data
listDataHeader.add("OS");
listDataHeader.add("LANGUAGE");
listDataHeader.add("IDE");
// Adding child data
List<String> OS= new ArrayList<String>();
OS.add("Windows");
OS.add("Linux");
OS.add("Android");
OS.add("MAC");
List<String> LANGUAGE= new ArrayList<String>();
LANGUAGE.add("JAVA");
LANGUAGE.add("C");
LANGUAGE.add("C++");
LANGUAGE.add("PHP");
LANGUAGE.add("objective c");
LANGUAGE.add("ROR");
List<String> IDE= new ArrayList<String>();
IDE.add("Android Studio");
IDE.add("Eclipse");
IDE.add("NetBeans");
IDE.add("xcode");
listDataChild.put(listDataHeader.get(0), OS); // Header, Child data
listDataChild.put(listDataHeader.get(1), LANGUAGE);
listDataChild.put(listDataHeader.get(2), IDE);
}
请查看更多详细信息以了解可扩展列表视图
http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/