以编程方式滚动到可扩展列表视图的底部,最后一项内容很大
Posted
技术标签:
【中文标题】以编程方式滚动到可扩展列表视图的底部,最后一项内容很大【英文标题】:Scroll programmatically to the bottom of an expandablelistview with big content in last item 【发布时间】:2015-05-03 06:10:33 【问题描述】:我正在尝试以编程方式滚动到可扩展列表视图的底部。 SO中的每个其他线程都指向:
var groupPosition = listView.ExpandableListAdapter.GroupCount - 1;
var childCount = (listView.ExpandableListAdapter as MyAdapter).GetChildrenCount (groupPosition);
listView.SetSelectedChild (groupPosition, childCount, false);
或:
var groupPosition = listView.ExpandableListAdapter.GroupCount - 1;
listView.SetSelectedGroup (groupPosition);
如果您的列表项不高于屏幕高度,这些功能非常有用,但在我的场景中,expandablelistview 的最后一项中的数据有时可能高于屏幕,尤其是在横向模式下。
我尝试过使用 listView.ScrollTo,但是它会在底部创建一大块空白区域。关于如何从字面上滚动到可扩展列表视图的底部,而不仅仅是最后一个组或子项的任何输入?
【问题讨论】:
你为什么不尝试使用 xml 滚动? 【参考方案1】:尝试将这些属性添加到xml
have ListView
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
或者以编程方式设置它们,
listView.StackFromBottom = true;
listView.TranscriptMode = TranscriptMode.AlwaysScroll;
listView.TranscriptMode = TranscriptMode.Normal;
【讨论】:
这使它在加载时自动滚动到底部,我只希望它在一个编程案例中滚动到底部。 您的建议使我找到了解决方案,即当我需要滚动到底部时以编程方式设置这些属性,然后立即删除它们,以免影响其他行为。 listView.StackFromBottom = true; listView.TranscriptMode = TranscriptMode.AlwaysScroll; listView.TranscriptMode = TranscriptMode.Normal; 如果您在回答中包含我提到的代码,那么我会接受回答。感谢您的提示! @Justin 是的,所以它也可能对其他人有帮助,请参阅我已经编辑了我的答案。以上是关于以编程方式滚动到可扩展列表视图的底部,最后一项内容很大的主要内容,如果未能解决你的问题,请参考以下文章