【发布时间】:2015-07-24 10:28:30
【问题描述】:
我有一个带有 LinearLayout 的应用程序,随着时间的推移,矩形片段从上到下在彼此下方添加。
在某些时候屏幕已满,新片段“隐藏”在屏幕视图之外。然后我想做的是每次添加新片段时让应用滚动到底部。
每次按下活动中的按钮或选中上述片段中的复选框时,都会添加一个片段。 所以我在 onClickListeners 和片段的 onCreateView 中尝试了以下操作:
fm.beginTransaction().add(R.id.activity_uhf_layout, fragment).commit(); //Adding fragment
runOnUiThread(new Runnable() {
@Override
public void run() {
scrollView.scrollTo(0, scrollView.getBottom());
}});
这有时会起作用,添加片段并且屏幕向下滚动,但它就像 1/8 次。
我尝试过其他方法,例如:
scrollView.post(new Runnable() {
@Override
public void run() {
scrollView.scrollTo(0, scrollView.getBottom());
}
});
这基本上给出了相同的结果,我试过没有 Runnable 帖子,这根本不起作用。
我得到的结果是布局只向下滚动到已经存在的片段的底部,而不是一直向下滚动到片段管理器刚刚添加的新片段的末尾。
在我看来,即使添加了片段,LayoutManager 也没有真正“检测到”或类似的东西,但是如何绕过它,我不太确定。
【问题讨论】:
-
你试过this 吗?您可能需要执行
listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL)和listView.setStackFromBottom(true);之类的操作。 -
我没有,但由于我没有将 Listview 用于我的片段,我真的认为它不会有帮助。但是,它可能只是从 LinearLayout 到使用 ListView 的唯一解决方案。
-
"得到了一个带有列表视图的应用程序" 啊,您似乎没有使用实际的 ListView。我会将片段放在 ListView 中,而不是使用 ScrollView。由于您使用的是 ScrollView,请尝试 this,在可运行文件中使用
scrollview.fullScroll(ScrollView.FOCUS_DOWN);。 -
哈。总滑倒。我在垂直方向使用 LinearLayout。
标签: android android-fragments android-scrollview