我需要禁用BrowseFragment中的标头,然后添加到ArrayObjectAdapter卡。当我做一个setHeadersState(HEADERS_DISABLED)应用程序时会崩溃。如果我setHeadersState(HEADERS_DISABLED)稍后运行方法,例如在onLoadFinished,应用程序不会崩溃,但标题栏立即可见然后隐藏,而不是每次在适配器中显示项目时。
MainFragment.class
\n\n public class MainFragment extends BrowseFragment implements LoaderManager.LoaderCallbacks<List<Module>> {\n private static final int MODULES_LOADER_ID = 100;\n private ArrayObjectAdapter mRowsAdapter;\n @Override\n public void onActivityCreated(Bundle savedInstanceState) {\n super.onActivityCreated(savedInstanceState);\n setupUIElements();\n setupRowAdapter();\n setupListeners();\n getLoaderManager().initLoader(MODULES_LOADER_ID, null, this);\n }\n private void setupUIElements() {\n setTitle(getActivity().getString(R.string.app_name));\n setBadgeDrawable(getResources().getDrawable(R.drawable.title, getActivity().getTheme()));\n setHeadersTransitionOnBackEnabled(false);\n setBrandColor(getActivity().getResources().getColor(R.color.fastlane_background));\n setHeadersState(HEADERS_DISABLED);\n }\n private void setupRowAdapter() {\n mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());\n setAdapter(mRowsAdapter);\n }\n private void setupListeners() {\n setOnItemViewSelectedListener(new ItemViewSelectedListener());\n setOnItemViewClickedListener(new ItemViewClickedListener());\n }\n private void loadModules(List<Module> …Run Code Online (Sandbox Code Playgroud) 我有一个片段:
public class FilmFragment extends BrowseFragment implements LoaderManager.LoaderCallbacks<Object>
Run Code Online (Sandbox Code Playgroud)
在BrowseFragment中,添加包含项目的几行:
private void loadRubricsFilms(List<Rubric> mRubrics, List<Film> mFilms) {
int j = 0;
for (Rubric mRubric : mRubrics) {
ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(mCardPresenter);
for (Film mFilm : mFilms) {
if (mFilm.getRubric() == mRubric.getId()) {
listRowAdapter.add(mFilm);
}
}
HeaderItem header = new HeaderItem(j++, mRubric.getTitle());
mRowsAdapter.add(new ListRow(header, listRowAdapter));
}
setAdapter(mRowsAdapter);
}
Run Code Online (Sandbox Code Playgroud)
我安装了OnItemViewSelectedListener侦听器:
private final class ItemViewSelectedListener implements OnItemViewSelectedListener {
@Override
public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) …Run Code Online (Sandbox Code Playgroud)