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