我想在加载活动后滚动到RecyclerView列表的底部.
GENERIC_MESSAGE_LIST = (ArrayList) intent.getExtras().getParcelableArrayList(ConversationsAdapter.EXTRA_MESSAGE);
conversationView = (RecyclerView) findViewById(R.id.list_messages);
conversationView.setHasFixedSize(true);
conversationViewLayoutManager = new LinearLayoutManager(this);
conversationView.setLayoutManager(conversationViewLayoutManager);
conversationViewAdapter = new ConversationAdapter(GENERIC_MESSAGE_LIST, this);
conversationView.setAdapter(conversationViewAdapter);
Run Code Online (Sandbox Code Playgroud)
conversationView.scrollTo(...)抛出了一个关于在RecyclerView中不受支持的例外,并且conversationView.scrollToPosition(...)似乎没有做任何事情.
在上面的代码块之后,我补充道
conversationView.scrollToPosition(GENERIC_MESSAGE_LIST.size() + 1)
Run Code Online (Sandbox Code Playgroud)
这不起作用.有30个元素GENERIC_MESSAGE_LIST.
我有列表项目EditText,我不知道会有多少项目.当我输入一些文本时EditText,我有一个问题,然后向下滚动RecyclerView,在我再次向上滚动后,我的第一个没有文字EditText.
我想知道什么,我应该在哪里编写代码,以便在用户输入或完成输入时(我想用a做TextWatcher)在EditText文本中保存到文件中(我将它保存在一个文件中).外部存储中的txt文件)
我应该onCreate在活动方法或适配器类或其他地方这样做吗?
这是一些代码
public class MainActivity extends Activity {
RecyclerView mRecyclerView;
MyAdapter mAdapter;
String[] mDataSet= new String[20];
@Override
protected void onCreate(Bundle savedInstanceState) {
// generating text for editText Views
for (int i = 0; i<=19; i++){
mDataSet[i]= "EditText n: "+i;
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
mAdapter = new MyAdapter(mDataSet);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.setHasFixedSize(true);
}
Run Code Online (Sandbox Code Playgroud)
public class MyAdapter …Run Code Online (Sandbox Code Playgroud)