HAN*_*TOR 6 android android-fragments android-scrollview
我有一个带有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());
}});
Run Code Online (Sandbox Code Playgroud)
这有时会起作用,片段会被添加并且屏幕会向下滚动,但它会像1/8倍一样.
我尝试过其他的东西,比如:
scrollView.post(new Runnable() {
@Override
public void run() {
scrollView.scrollTo(0, scrollView.getBottom());
}
});
Run Code Online (Sandbox Code Playgroud)
这基本上给出了相同的结果,我试过没有Runnable帖子,这根本不起作用.
我得到的结果是布局只向下滚动到已经存在的片段的底部,而不是一直到片段管理器刚刚添加的新片段的末尾.
对我来说,似乎即使添加了片段,LayoutManager也没有真正"检测到它"或类似的东西,但是如何绕过它,我不是很确定.
你也可以尝试这样做。
fm.executePendingTransactions();
runOnUiThread(new Runnable() {
@Override
public void run() {
//Linearlayout is the layout the fragments are being added to.
View view = linearLayout.getChildAt(linearLayout.getChildCount()-1);
scrollView.scrollTo(0, view.getY() + view.getHeight());
}});
Run Code Online (Sandbox Code Playgroud)
我不知道executePendingTransactions() 是必要的,但如果已添加视图,那么这应该可以工作。
归档时间: |
|
查看次数: |
1819 次 |
最近记录: |