以编程方式滚动到可扩展列表视图的底部,最后一项内容很大

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】:

尝试将这些属性添加到xmlhave 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 是的,所以它也可能对其他人有帮助,请参阅我已经编辑了我的答案。

以上是关于以编程方式滚动到可扩展列表视图的底部,最后一项内容很大的主要内容,如果未能解决你的问题,请参考以下文章

使用 swift 以编程方式滚动到 webview 的底部

Admob 横幅隐藏列表视图片段的最后一项

需要时以编程方式添加滚动

以编程方式在iOS上滚动UIWebView

以编程方式防止滚动列表视图颤动

以编程方式膨胀底部导航视图菜单