我在应用程序中使用recylerview,并且每当将新元素添加到recyclerview时,它都会通过使用滚动到最后一个元素
recyclerView.scrollToPosition(adapter.getCount());
但是,每当键盘打开时(由于editTextView),它都会调整 View 的大小,并且recyclerview会变小,但无法滚动到最后一个元素。
android:windowSoftInputMode="adjustResize"
我什至尝试使用以下代码滚动到最后一个元素,但是没有用
editTextView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
recyclerView.scrollToPosition(chatAdapter.getItemCount());
}
}
});
我可以尝试
adjustPan
来移动平移,但是它隐藏了我的工具栏。请提出任何纠正问题的方法。
最佳答案
您可以使用recyclerview.addOnLayoutChangeListener()
捕获键盘更改。
如果bottom小于oldBottom
,则键盘处于向上状态。
if ( bottom < oldBottom) {
recyclerview.postDelayed(new Runnable() {
@Override
public void run() {
recyclerview.smoothScrollToPosition(bottomPosition);
}
}, 100);
}