我應(yīng)該在 onCreateView、onViewCreated 還是 onActivityCreated 中初始化我的回收視圖?這三個之間有什么區(qū)別,我搜索了解釋,但有些人說使用 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條經(jīng)驗 獲得超2個贊
onCreateView()
將是最佳選擇,因為您正在使用Fragment
. 所不同的是onCreateView()
是Fragment
等價的onCreate()
各種活動和運行期間View
創(chuàng)建,但onViewCreated()
運行后View
已創(chuàng)建。
并在完成方法onActivityCreated()
之后調(diào)用

慕工程0101907
TA貢獻1887條經(jīng)驗 獲得超5個贊
設(shè)置 RecyclerView 的最佳級別是在 onCreateView() 中,在 Activity 的情況下相當于 onCreate() 因為 RecyclerView 需要快速以免使 UI 變得遲鈍。因此,onViewCreated() 中的 RecyclerView 會使 UI 在填充 UI 之前變得緩慢。
添加回答
舉報
0/150
提交
取消