私はRecyclerView
をチャットしています。項目はTextViews
レイアウトは逆です。入力フィールドはRecyclerView
以下です。 RecyclerView
の下にスクロールして下の項目をクリックすると、フォーカスが当てられます(クリックするたびにフォーカスが当たった場合のみ)、RecyclerView
が自動的にその項目の上にスクロールします(項目のテキストが画面の高さより大きい場合) 。ビューがフォーカスされているときにRecyclerViewが表示の上にスクロールする
また、キーボードが表示されているときにRecyclerView
アイテムをクリックすると、キーボード隠しとリサイクルビューがそのアイテムの先頭にスクロールします。このような動作を無効にするにはどうすればよいですか?
キーボードを開いたとき、またはアイテムをクリックしたときの同じ位置にとどまりたいです。
キーボードは、この方法
* * * *
inputView.setOnFocusChangeListener((v, hasFocus) -> {
if (!hasFocus){
hideKeyboard();
}
});
* * * *
public void hideKeyboard() {
InputMethodManager keyboard = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.hideSoftInputFromWindow(inputView.getWindowToken(), 0);
}
そして、このような方法で構成RecyclerView
に隠れている:
RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.messageList);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
linearLayoutManager.setReverseLayout(true);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(chatAdapter = new chatAdapter(getContext()));
私はボタンを作成し、そのボタンをクリックすることでhideKeyBoard()
を呼び出します場合 - その[OK]を、それがありませんスクロールしませんが、RecyclerViewアイテムをクリックすると、そのアイテムの先頭にスクロールされ、スクロールされます。