一直就想完成這個工作. 這次一定要抽出時間完成, yes, this time.
春雨醫生
本文的合集已經編著成書,高級Android開發強化實戰,歡迎各位讀友的建議和指導。在京東即可購買:https://item.jd.com/12385680.html
Android
參考以前的文章, 又添加若干新內容.
修改統一的版本配置, chunyu_base.gradle
.
android {
compileSdkVersion 22
defaultConfig {
targetSdkVersion 22
}
}
dependencies {
compile 'com.android.support:appcompat-v7:22.0.0'
}
錯誤
Error:(11, 32) No resource found that matches the given name
(at 'layout_height' with value '@dimen/abc_action_bar_default_height').
替換ActionBar的高度為Android5.0屬性, 即
android:layout_height="@dimen/abc_action_bar_default_height"
為
android:layout_height="?attr/actionBarSize"
位置: activity_volunteer_doctor_list.xml 和 activity_offline_clinic_list.xml
錯誤:
java.lang.NullPointerException:
Attempt to invoke virtual method
'void me.chunyu.ChunyuDoctor.home.HomeAssistantNewsFragment.setAct(android.app.Activity)'
on a null object reference
at me.chunyu.ChunyuDoctor.home.MainPageFragment.initView(MainPageFragment.java:244)
原因G7Anno出現問題, 應該使用fragment.getChildFragmentManager
.
public android.support.v4.app.Fragment getV4Fragment(android.support.v4.app.Fragment fragment,
int fragmentId, android.support.v4.app.Fragment defaultFrag) {
android.support.v4.app.Fragment frag =
fragment.getFragmentManager().findFragmentById(fragmentId);
return frag == null ? defaultFrag : frag;
}
修改后
public android.support.v4.app.Fragment getV4Fragment(android.support.v4.app.Fragment fragment,
int fragmentId, android.support.v4.app.Fragment defaultFrag) {
fragment.getChildFragmentManager().findFragmentById(fragmentId);
android.support.v4.app.Fragment frag = null;
if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN) {
frag = fragment.getChildFragmentManager().findFragmentById(fragmentId);
} else {
frag = fragment.getFragmentManager().findFragmentById(fragmentId);
}
return frag == null ? defaultFrag : frag;
}
替換G7Anno-Core
compile 'me.chunyu.android:g7anno-core:0.1.7-rc1@jar'
為
compile 'me.chunyu.android:g7anno-core-v22:0.1.0@jar'
修改G7Anno-Lib, 適配Fragment嵌套.
@Override
public void onDestroyView() {
super.onDestroyView();
// 導致加載嵌套的Fragment異常, 刪除View的操作, 移至創建View的時候.
// View v = mContentView.get();
// if (v != null && v.getParent() != null) {
// ((ViewGroup) v.getParent()).removeView(v);
// }
}
OK, that's all! Enjoy it!