1选浑、沉浸式圖片狀態(tài)欄使用ImageView控件,并且必須使用
android:background="@mipmap/img_mine_bg" 引入圖片 不能使用雙src引入P9磐健!6潦选隧膘!
2、單Activity多Fragment下自定義狀態(tài)欄沉浸式+去除陰影+修改字體
// 自定義狀態(tài)欄:沉浸式+去除陰影+黑色字體
privatevoidMyStatusBarDark(){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0及以上
? ? ? ? ? ? View decorView = getWindow().getDecorView();
? ? ? ? ? ? getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
? ? ? ? ? ? ? ? ? ? | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
intoption = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
? ? ? ? ? ? ? ? ? ? | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
? ? ? ? ? ? decorView.setSystemUiVisibility(option);
? ? ? ? ? ? getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
? ? ? ? ? ? getWindow().setStatusBarColor(Color.TRANSPARENT);
}elseif(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4到5.0
? ? ? ? ? ? WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
? ? ? ? ? ? localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
? ? ? ? }
//修改字體顏色
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//android6.0以后可以對狀態(tài)欄文字顏色和圖標(biāo)進(jìn)行修改
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);// SYSTEM_UI_FLAG_LIGHT_STATUS_BAR :黑色字體)(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR :白色字體
? ? ? ? }
3疹吃、ScrollView滑動監(jiān)聽
自定義ScrollView
importandroid.content.Context;
importandroid.util.AttributeSet;
importandroid.widget.ScrollView;
publicclassMyScrollViewextendsScrollView{
privateOnScrollListener listener;
publicvoidsetOnScrollListener(OnScrollListener listener){
this.listener = listener;
? ? }
publicMyScrollView(Context context){
super(context);
? ? }
publicMyScrollView(Context context, AttributeSet attrs){
super(context, attrs);
? ? }
publicMyScrollView(Context context, AttributeSet attrs,intdefStyleAttr){
super(context, attrs, defStyleAttr);
? ? }
//設(shè)置接口
publicinterfaceOnScrollListener{
voidonScroll(intscrollY);
? ? }
//重寫原生onScrollChanged方法,將參數(shù)傳遞給接口西雀,由接口傳遞出去
@Override
protectedvoidonScrollChanged(intl,intt,intoldl,intoldt){
super.onScrollChanged(l, t, oldl, oldt);
//? ? ? ? System.out.println("111111"+t);
if(listener !=null){
//這里我只傳了垂直滑動的距離
? ? ? ? ? ? listener.onScroll(t);
? ? ? ? }
? ? }
4 . Android Studio 創(chuàng)建module時版本不統(tǒng)一
Error:Execution failed for task ':app:preDebugAndroidTestBuild'.
> Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (
解決:
configurations.all {
? ? ? ? resolutionStrategy.force 'com.android.support:support-annotations:27.1.1'
? ? }
5.
Activity退出時即時釋放資源
Activity退出時所有靜態(tài)變量恢復(fù)為默認(rèn)值(全局靜態(tài)變量)
Activity退出時移除所有Handler消息
所有的Dialog對話框調(diào)用show()方法之前必須先行判斷Activity是否已經(jīng)finished
EvenBus框架粘性事件使用完或退出頁面時必須移除
獲取Intent值前必須判斷getIntent()返回是否為空
Service有效性比BroadCastReceiver更高
所有網(wǎng)絡(luò)請求必須對各種情況做處理
作者:eagerabu
鏈接:http://www.reibang.com/p/8a4049b9c280
來源:簡書
著作權(quán)歸作者所有萨驶。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處艇肴。