我知道这个问题之前被问过几次,但我的情况与其他问题有点不同。
我有一个listview,最初我想将滚动位置设置到列表的底部。
我尝试了两种方式。
第一个
mCommentListView.setSelection(mAdaptor.getCount()-1);
第二个
mCommentListView.post(new Runnable() {
@Override
public void run() {
mCommentListView.setSelection(mAdaptor.getCount()-1);
}
});
所以我的问题是上面的代码都可以正常使用模拟器,但它不能与真实设备一起使用。
我错过了什么?
答案 0 :(得分:12)
试试这个。以下代码对我来说很好。
为加载列表视图提供时间延迟500,然后调用setselection方法。
commentslistview.postDelayed(new Runnable() {
@Override
public void run() {
commentslistview.setSelection(commentsarraylist.size());
}
}, 500);
答案 1 :(得分:8)
您是否在 ListView 中设置了这些内容?
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
答案 2 :(得分:2)
listView.setAdapter(adapter);
listView.setSelection(position);
答案 3 :(得分:1)
试试这个
srollView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mScrollView.post(new Runnable() {
@Override
public void run() {
scrollView.smoothScrollTo(0,scrollView.getBottom());
}
});
}
});
答案 4 :(得分:1)
:D我刚刚设置:
mListView.setSelection(adapter.getCount() - 1);
我的布局
<ListView
android:id="@+id/tb_body"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:choiceMode="singleChoice"
android:stackFromBottom="true"
tools:ignore="NestedScrolling" >
</ListView>
SET
android:choiceMode="singleChoice"
android:stackFromBottom="true"
希望它能与你合作。
答案 5 :(得分:0)
尝试,
mCommentListView.getChildAt(mCommentListView.getChildCount() - 1).requestFocus();
答案 6 :(得分:0)
尝试以下代码
commentslistview.smoothScrollToPosition(commentsarraylist.size() -1);