原创 ListView展示不同類別

需求 同一個ListView展示多種不同UI風格類型的Item 代碼實現 關鍵是重寫 getViewTypeCount() 和 getItemViewType(int position) 兩個方法。 priva

原创 Fragment基礎

1. 基本介紹 2. 生命週期 3. fragment 和 activity生命週期對照 4. 基本使用 1. 靜態使用 2. 動態使用 5. 任務棧管理 hide()和show()方式進行Fragment管理 6.

原创 SVN update失敗 clean失敗

SVN update的時候報錯,clean卻又出現亂碼的異常。 解決方法如下: 下載sqlite3 下載地址 http://pan.baidu.com/s/1eS7qt5S 打開 .svn目錄 將 wc.db 複製出來 將w

原创 官方推薦的Dialog——DialogFragment

簡介 官方推薦使用的Dialog類型,繼承自Fragment,通過FragmentManager管理對話彈框。由於繼承自Fragment,使用dialog時完全可以將其看作Fragment。 使用DialogFragment需要

原创 Button英文字母大寫問題

如下定義一個Button: <Button android:layout_width="match_parent" android:layout_height="ma

原创 獲取Activity棧,判斷當前Activity位置

需求 需要在整個app全局能夠彈出彈框,接收到廣播即進行處理。 但是,BaseActivity派生出N個Activity,BaseActivity中的廣播就會執行N次,導致彈框重複添加,所有在廣播中判定,只有在棧頂的Activit

原创 WindowManager——懸浮在所有app之上

目標 WindowManager 效果實現 目標 類似於某魚、某貓直播平臺的懸浮窗功能,能夠在APP切換到後臺後進行播放直播。 是不是很酷炫? WindowManager很簡單就能實現將一個View懸浮在系統上。 W

原创 ActivityLifecycleCallbacks——追蹤Activity生命週期

目標 之前使用全局廣播 + BaseActivity + Activity棧中位置判斷 實現全局數據接收、全局彈框。實在是有點兒low,後面請教高人,發現一個十分簡單的方式對所有的Activity的生命週期進行監聽追蹤,既節約了

原创 Android Studio優雅的看源碼

正常情況看源碼: 下載了默認就可以看了,不做贅述。 看源碼出現了問題,下載了看不到? 1.找到AS安裝目錄 AndroidStudio3.1 -> options -> jdk.table.xml 打開修改對應數據: 但是28的源碼始終

原创 MVP+Retrofit+Rxjava+Dagger2 Architecture

地址 https://github.com/meybeBlank/FengArchitecture 前言 Android做了兩三年,每次都是用的別人的架構,中途也抽時間看過項目的框架的東西,一知半解,虎頭蛇尾。自己沒有從0到1的過程,能力

原创 Android 7.0+ 文件權限 相機調用問題

  情景 Android 24之後,加強了文件訪問權限控制,調用相機、圖片裁剪等情況就會報錯。之前遇到過懶得記,再次遇到簡單記一下。 處理 1.Manifests文件註冊 <application> <provider

原创 Dagger-android 量身定做的Dagger

目錄 0. 爲什麼定製? 1. 2.10版本複雜的方式 1.0 導包 1.1 依賴創建 1.2 依賴注入 1.3 讓這一切被Dagger所知曉 1.4 源碼看了一下 結合 生成的代碼 2. 2.11版本@ContributesAndroi

原创 Dagger2學習入門

目錄 前置: 三種常用的依賴注入方式: 構造器注入: setter方法注入: 接口注入: Dagger簡單注入: 1.依賴創建:構造方法提供依賴 1.依賴創建:Module類提供依賴 2.依賴注入位置:屬性注入 User注入 2.依賴注入

原创 併發編程

進程:運行在他自己的地址空間的自包容程序。 線程:進程中的單一順序控制流、子任務。 daemon後臺線程:非後臺線程結束,殺死所有後臺線程,並結束整個程序。   變量實例對象存於主存;每個線程私有一個工作內存,同時只能操作自身工作內存,不

原创 RxJava學習指南

目錄 基礎用法 線程調度 關鍵字 create map flatMap/concatMap timer interval zip concat/merge distinct filter buffer skip/skipLast take