onCreateViewHolder()
,onBindViewHolder()
,onAttachedToRecyclerView()
等函数永远不会被调用。这就是我想要做的。
- 点击
醇>MainActivity
时从RecyclerViewActivity
切换到Button1
,然后将fragment_recyclerview
加载到RecyclerViewActivity
switch(id) {
case R.id.aboutMeButton:
getSupportFragmentManager().beginTransaction().replace(R.id.mainContainer, AboutMeFragment.newInstance()).addToBackStack(null).commit();
break;
case R.id.task1Button:
intent = new Intent(this, RecyclerViewActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT );
startActivity(intent);
break;
default:
break;
}
- 醇>
FragmentViewActivity.onCreate()
FragmentViewActivity.onCreate()
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recyclerview);
getSupportFragmentManager().beginTransaction().replace(R.id.recyclerViewContainer, RecyclerViewFragment.newInstance()).commit();
Log.d("AAA", "RecyclerViewActivity.onCreate( )");
}
- 醇>
RecyclerViewFragment.onCreateView()
:
RecyclerViewFragment.onCreateView(){
final View rootView = inflater.inflate(R.layout.fragment_recyclerview, container, false);
movieData = new MovieData();
mRecyclerView = (RecyclerView) rootView.findViewById(R.id.cardViewContainer);
// Log.d("AAA", "mRecyclerView = " + mRecyclerView.getId());
// use this setting to improve performance if you know that changes
// in content do not change the layout size of the RecyclerView
mRecyclerView.setHasFixedSize(true);
// use a linear layout manager
mLayoutManager = new LinearLayoutManager(getActivity());
mRecyclerView.setLayoutManager(mLayoutManager);
Log.d("AAA", "getActivity() = " + getActivity().toString());
Log.d("AAA", "movieList size = " + movieData.getMoviesList().size());
// specify an adapter (see also next example)
mAdapter = new MovieDataAdapter(getActivity(), movieData.getMoviesList());
mRecyclerView.setAdapter(mAdapter);
return super.onCreateView(inflater, container, savedInstanceState);
}
- 醇>
Adapter.getItemCount()
返回30但是,除了构造函数之外的适配器中的函数永远不会被调用,这留给我一个纯粹的空白 屏幕。我不知道发生了什么事
答案 0 :(得分:0)
您要在View
中设置rootView
,然后返回View
,而不是返回super.onCreateView()
:
而不是onCreateView()
中的以下内容:
return super.onCreateView(inflater, container, savedInstanceState);
您应该返回刚刚设置的View
:
return rootView;
答案 1 :(得分:0)
<强>第一强>
如此夸大观点:
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.recycler_layout, container, false);
}
创建视图后,使用 onViewCreated(..)方法初始化并创建适配器:
@Override
public void onViewCreated(View view, Bundle savedInstanceState){
// here initialize recycler view
super.onViewCreated(view, savedInstanceState);
}
并且正如user13所说,你需要返回膨胀的视图而不是超级创建的视图!!!! *
然后你会避免这样的问题
<强>第二强>