【问题标题】:ExpandableListView not expanding child nodesExpandableListView 不展开子节点
【发布时间】:2015-09-14 06:34:45
【问题描述】:

我在之前的活动中有一个可扩展列表,但我决定采用不同的路线(片段),并想复制可扩展列表的想法。所以我复制/修改了代码,但它似乎并没有像我希望的那样工作。

真相:

  • 我知道数据正在进入 ArrayList,因为我正在打印 size() 并显示适当的数量。

  • 列表标题出现了,我可以点击它,将胡萝卜(^)翻转过来。

  • 我正在使用 3 个 Fragment,并显示基于所选 Fragment 的布局。我希望每个片段有一个可扩展列表,我认为这是可行的。

  • 类 ExpandableListA 过去曾为我工作过,我没有更改任何代码,所以我认为这不是问题。


选择片段

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    ViewGroup rootView;
    TextView tv;

    switch(getPageNumber()){
        default:
        case 0:
            rootView = (ViewGroup) inflater.inflate(R.layout.fragment_today, container, false);
            tv = (TextView)rootView.findViewById(R.id.today_frag_tv);
            tv.append(todays_data[0]);
            expandable_list(todays_data, rootView);
            break;
        case 1:
            rootView = (ViewGroup) inflater.inflate(R.layout.fragment_specials, container, false);
            tv = (TextView)rootView.findViewById(R.id.specials_frag_tv);
            // will figure this out
            break;
        case 2:
            rootView = (ViewGroup) inflater.inflate(R.layout.fragment_business, container, false);
            tv = (TextView)rootView.findViewById(R.id.biz_frag_tv);
            // will figure this out                
            break;
    }

    return rootView;
}

找出可展开的列表

public void expandable_list(final String biz_data[], ViewGroup rootView){

    // get the listview
    expListView = (ExpandableListView) rootView.findViewById(R.id.lvExpToday);

    // preparing list data
    prepareListData(biz_data);

    //
    listAdapter = new ExpandableListA(getActivity(), listDataHeader, listDataChild);

    // setting list adapter
    expListView.setAdapter(listAdapter);

}

private void prepareListData(String biz_data[]) {

    listDataHeader = new ArrayList<String>();
    listDataChild = new HashMap<String, List<String>>();

    // Adding child data
    listDataHeader.add(biz_data[0]);

    Log.d("b_d length: ", Integer.toString(biz_data.length));

    // Adding child data
    List<String> mon = new ArrayList<String>();

    for (int i = 1; i < biz_data.length;i++)
        mon.add(biz_data[i]);

    Log.d("mon length: ", Integer.toString(mon.size()));

    listDataChild.put(listDataHeader.get(0), mon); // Header, Child data

}

【问题讨论】:

    标签: android android-fragments expandablelistview expandablelistadapter


    【解决方案1】:

    错误出现在我的 xml 布局文件中。 Fragments 位于 ScrollView 中,在 LinearLayout 中将其移除后,ExpandableLists 工作正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多