這樣提示RecyclerView找不到是怎么回事呢?我這里三個(gè)類(lèi),依次是SystemMessageFragment extends LazyFragment extends BaseFragment.下面是錯(cuò)誤日志和三個(gè)類(lèi)
SystemMessageFragment
public class SystemMessageFragment extends LazyFragment {
@BindView(R.id.rv_message_system)
RecyclerView mRecyclerView;
private List<String> mDatas;
private SystemMessageAdapter mAdapter;
@Override
public int contentViewId() {
return R.layout.fragment_system_message;
}
@Override
public void initView(Bundle savedInstanceState, View view) {
// ButterKnife.bind(this,view);
}
@Override
protected void onLazyLoad() {
mDatas = new ArrayList<>();
for (int i = 0; i < 5; i++) {
mDatas.add("數(shù)據(jù)" + i);
}
mAdapter = new SystemMessageAdapter(R.layout.item_message_system, mDatas);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(linearLayoutManager);
mRecyclerView.setAdapter(mAdapter);
}
}
LazyFragment:
public abstract class LazyFragment extends BaseFragment {
private boolean isInit = false;
private View mContainerView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//可見(jiàn)了但是沒(méi)初始化
if (getUserVisibleHint() && !isInit) {
mContainerView = super.onCreateView(inflater, container, savedInstanceState);
isInit = true;
} else {
//不可見(jiàn),加載其他布局
mContainerView = inflater.inflate(R.layout.lazy_loading, container, false);
mContainerView.setBackgroundColor(lazyFragmentBackground());
}
return mContainerView;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
if (!getUserVisibleHint() && !isInit) {
return;
}
super.onViewCreated(view, savedInstanceState);
if (isInit) {
onLazyLoad();
}
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isAdded()) { //回到生命周期
//可見(jiàn)又初始化了
if (isVisibleToUser && !isInit && mContainerView != null) {
if (mContainerView instanceof ViewGroup) { //是不是viewgroup,然后移除那些簡(jiǎn)單view,加載重布局
ViewGroup group = ((ViewGroup) mContainerView);
group.removeAllViews();
View view = LayoutInflater.from(getActivity()).inflate(contentViewId(), group, false);
group.addView(view);
super.onViewCreated(mContainerView, null);
onLazyLoad();
isInit = true;
}
}
if (isInit && mContainerView != null) { //顯示隱藏的回調(diào)
if (isVisibleToUser) {
onShowFragment();
} else {
onHideFragment();
}
}
}
}
protected abstract void onLazyLoad();
protected int lazyFragmentBackground() {
return ContextCompat.getColor(getActivity(), R.color.lazy_fragment_background);
}
protected void onShowFragment() {
}
protected void onHideFragment() {
}
@Override
public void onDetach() {
super.onDetach();
isInit = false;
}
}
BaseFragment:
public abstract class BaseFragment extends Fragment {
private Unbinder mUnbinder;
private TextView mTitleTv;
private TextView mLeftMenuTv;
private TextView mRightMenuTv;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(contentViewId(), container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// EventBusUtil.register(this);
mUnbinder = ButterKnife.bind(this, view);
// View toolbar = view.findViewById(R.id.toolbar);
// if (toolbar != null) {
// mTitleTv = toolbar.findViewById(R.id.title_tv);
// mLeftMenuTv = toolbar.findViewById(R.id.left_menu_tv);
// mRightMenuTv = toolbar.findViewById(R.id.right_menu_tv);
// int height = StatusBarUtil.getStatusBarHeight(getActivity());
// ViewGroup.LayoutParams viewGroup = toolbar.getLayoutParams();
// viewGroup.height = getResources().getDimensionPixelSize(R.dimen.titlebar_height) + height;
// toolbar.setPadding(toolbar.getPaddingLeft(), height,
// toolbar.getPaddingRight(), toolbar.getPaddingBottom());
// toolbar.setPadding(0, height, 0, 0);
// }
initView(savedInstanceState, view);
initEvent();
}
public abstract void initView(Bundle savedInstanceState, View view);
public void initEvent() {
}
public abstract int contentViewId();
protected void setLeftMenu(String leftMenuText) {
if (mLeftMenuTv != null) {
mLeftMenuTv.setText(leftMenuText);
}
}
protected void setCenterTitle(String title) {
if (mTitleTv != null) {
mTitleTv.setText(title);
}
}
protected void setRightMenu(String rightMenuText) {
if (mRightMenuTv != null) {
mRightMenuTv.setText(rightMenuText);
}
}
protected void setLeftVisiable(boolean visiable) {
if (mLeftMenuTv != null) {
mLeftMenuTv.setVisibility(visiable ? View.VISIBLE : View.GONE);
}
}
protected void seRightVisiable(boolean visiable) {
if (mRightMenuTv != null) {
mRightMenuTv.setVisibility(visiable ? View.VISIBLE : View.GONE);
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (mUnbinder != null) {
mUnbinder.unbind();
mUnbinder = null;//解決比賽模塊頁(yè)面切換崩潰問(wèn)題
}
// EventBusUtil.unregister(this);
}}北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。