如何关注添加到ExpandableListView的新子项

时间:2015-12-18 11:54:07

标签: android expandablelistview

我有和ExpandableListView,当在最后一项上按下返回键时,我动态添加子项。当屏幕空间不足时发生这种情况时,我的新项目会被添加但是它没有被聚焦,并且没有看到b / c键盘是可见的。我想向下滚动并使最后一项成为焦点。

2 个答案:

答案 0 :(得分:1)

我想修改我以前的答案b / c我发现了一些尝试向上滚动的问题。我创建了一个新方法

 public static int getScreenHeight(){
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);

    return size.y;
}

然后在我的代码中,我将新的子项添加到列表中,我有:

 adapter.notifyDataSetChanged();
 listView.smoothScrollToPosition(Utility.getScreenHeight());

如果项目是列表的最后一项,我只调用上面的代码。在光标赶上之前键入时略有延迟,约。 2秒无论如何,希望这有助于其他人。

答案 1 :(得分:0)

在阅读了几篇帖子并尝试了几个共享的想法之后,这就是我为我的问题找到的解决方案。

在我的ExpandableListAdapter中扩展了我在getChildView()中添加的BaseExpandableListAdapter:

//this line is added after I add the new child 
this.notifyDataSetChanged();
expandableListView.smoothScrollToPosition(this.getChildrenCount(groupPosition));
//the 'this' is the adapter