我應該在 onCreateView、onViewCreated 還是 onActivityCreated 中初始化我的回收視圖?這三個之間有什么區別,我搜索了解釋,但有些人說使用 onCreateView ,有些人說使用 onViewCreated 或 onActivityCreated 并且只使用 onCreateView 來膨脹布局?這是我的代碼@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View rootView = inflater.inflate(R.layout.fragment_tab1, container, false); recyclerViewSongs = rootView.findViewById(R.id.recyclerViewSongs); initRecyclerView(); Log.e(TAG, "onCreateView called!"); return rootView;}private void initRecyclerView() { Main.musicList = Main.songs.songs; // Connects the song list to an adapter // (Creates several Layouts from the song list) allSongsAdapter = new AllSongsAdapter(getContext(), Main.musicList); final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity()); recyclerViewSongs.setLayoutManager(linearLayoutManager); recyclerViewSongs.setHasFixedSize(true); recyclerViewSongs.setAdapter(allSongsAdapter); recyclerViewSongs.addOnItemTouchListener(new OnItemClickListeners(getContext(), new OnItemClickListeners.OnItemClickListener() { @TargetApi(Build.VERSION_CODES.O) @Override public void onItemClick(View view, int position) { Toast.makeText(getContext(), "You Clicked position: " + position, Toast.LENGTH_SHORT).show(); if (! Main.songs.isInitialized()) return; //Start playing the selected song. playAudio(position); } }));}
2 回答
慕斯王
TA貢獻1864條經驗 獲得超2個贊
onCreateView()將是最佳選擇,因為您正在使用Fragment. 所不同的是onCreateView()是Fragment等價的onCreate()各種活動和運行期間View創建,但onViewCreated()運行后View已創建。
并在完成方法onActivityCreated()之后調用
慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
設置 RecyclerView 的最佳級別是在 onCreateView() 中,在 Activity 的情況下相當于 onCreate() 因為 RecyclerView 需要快速以免使 UI 變得遲鈍。因此,onViewCreated() 中的 RecyclerView 會使 UI 在填充 UI 之前變得緩慢。
添加回答
舉報
0/150
提交
取消
