压缩位置与平面位置之间的差异android可扩展列表视图

压缩位置与平面位置之间的差异android可扩展列表视图,android,expandablelistview,expandablelistadapter,Android,Expandablelistview,Expandablelistadapter,我混淆了可扩展listview的展开位置和压缩位置。我在谷歌上搜索过,但我发现 平面列表位置:ListView及其适配器使用的位置 打包位置:一个长的那种“打包”(有点旋转)是什么类型的 位置(组、子项或页眉/页脚为null)以及 位置值(组/子值) 但我仍然不能完全理解它。如果有人能给我举个例子,那就太好了。可展开列表视图: 可扩展列表视图用于按类别对列表数据进行分组。当用户触摸标题时,它具有扩展和折叠组的功能 为了创建一个可扩展的列表视图,我们需要三个xml布局文件。第一个用于主列表视图,第

我混淆了可扩展listview的展开位置和压缩位置。我在谷歌上搜索过,但我发现

平面列表位置:ListView及其适配器使用的位置

打包位置:一个长的那种“打包”(有点旋转)是什么类型的 位置(组、子项或页眉/页脚为null)以及 位置值(组/子值)

但我仍然不能完全理解它。如果有人能给我举个例子,那就太好了。

可展开列表视图:

可扩展列表视图用于按类别对列表数据进行分组。当用户触摸标题时,它具有扩展和折叠组的功能

为了创建一个可扩展的列表视图,我们需要三个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);
    }
*准备列表数据
*/
私有void prepareListData(){
listDataHeader=新的ArrayList();
listDataChild=newHashMap();
//添加子数据
添加(“OS”);
添加(“语言”);
添加(“IDE”);
//添加子数据
List OS=new ArrayList();
添加操作系统(“Windows”);
添加操作系统(“Linux”);
添加操作系统(“安卓”);
添加操作系统(“MAC”);
列表语言=新的ArrayList();
添加(“JAVA”);
语言。添加(“C”);
添加(“C++”);
添加(“PHP”);
语言。添加(“目标c”);
语言。添加(“ROR”);
List IDE=new ArrayList();
添加(“安卓工作室”);
添加(“Eclipse”);
添加(“NetBeans”);
添加(“xcode”);
listDataChild.put(listDataHeader.get(0),OS);//头,子数据
listDataChild.put(listDataHeader.get(1),语言);
listDataChild.put(listDataHeader.get(2),IDE);
}
请查找更多详细信息以了解可展开列表视图


我自己找到了解决方案:

平面位置是屏幕上视图的索引,无论是哪种类型(子视图还是组视图)。如图所示


而压缩位置是一个长的位置,它的值很少,例如视图类型(子视图或组视图)和使用二进制运算符编码的视图的平面位置(例如和
&
,或
|
,shift
)。

这是一个很好的信息,但问题是关于压缩位置和平面位置的。