原创 ToolBar
一、ToolBar樣式使用一覽 1、include <android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.co
原创 從點擊屏幕到事件處理的事件分發源碼流程
從點擊屏幕到事件處理的事件分發源碼流程 有事沒事先來張圖 怎麼打印出來的,代碼先奉上 Thread.dumpStack(); 在dispatchTouchEvent(MotionEvent event)方法中執行該方法 通
原创 SearchView
佈局: XML佈局: <android.support.v7.widget.SearchView android:id="@+id/search_view" android:layout_width="wr
原创 StartActivity路上的mParent
源碼基於API26 mParent幹嘛來着,帶着這個疑問上車了 通過源碼發現在Activity中attach()方法中賦值了,事實上還有個方法也可以賦值,即setParent(Activity parent). 不多說直接看
原创 源碼探探之StartActivity(一)
源碼基於API 26 startActivity()上車 @Override public void startActivity(Intent intent) { this.startActivity(intent,
原创 源碼探探之startActivity(二)
源碼基於API26 在上一篇中,講到由ActivityThread啓動activity了 ActivityThread即我們平時提到的主線程,上一篇中AMS處理啓動activity的task和record信息後通過binder
原创 Jetpack之Navigation源碼學習(二)
如果有人不相信代碼是簡單的,那是因爲他們沒有意識到人生有多複雜。 本篇梳理NavGraph的構建和加載流程 NavHostFragement#onInflate(Context context, AttributeSet attrs
原创 Constranint佈局配置和使用教程
項目配置 注:可從Api level 9開始使用 ext{ constraint = '1.0.2' } implementation "com.android.support.constraint:constraint-la
原创 RxJava操作符使用
一、創建操作 Create 使用一個函數從頭開始創建一個Observable 一個形式正確的有限Observable必須嘗試調用觀察者的onCompleted正好一次或者它的onError正好一次,而且此後不能再調用觀察者的任何其它
原创 AtomicBoolean意義何在
AtomicBoolean意義何在 提供了一種在多線程中安全處理業務邏輯的方案 private var started = AtomicBoolean(false) if (started.compareAndSet(false, tru
原创 Android獲取座標細則
Android座標系: x軸向右,y軸向下,z軸向上 View相對座標 getTop() View的上離x軸方向父佈局的距離 getLeft() View的左離y軸方向父佈局的距離 getBottom() View的
原创 DataBind配置及簡要使用
配置 在Moudle級的gradle裏添加 //使用dataBinding dataBinding { enabled true } 簡要使用 佈局 <?xml version="1.0" encoding="utf-8"?>
原创 Fragment判斷可見性
判斷可見性 addFragment或者replaceFrament @Override public void onResume() { super.onResume(); //TODO now visible to us
原创 Retrofit與LiveData結合
Retrofit與LiveData結合 寫上題目有點不知道怎麼寫了的很短暫的尷尬 有個問題,爲什麼我們可以直接更改service接口方法的返回值。 先解釋一波,相信我們都對Rxjava+Retrofit使用很熟悉了吧,回憶一下步驟
原创 Jetpack之Navigation源碼學習(一)
如果有人不相信代碼是簡單的,那是因爲他們沒有意識到人生有多複雜。 本篇按照使用流程進行梳理代碼結構 Navigation Navigation.findNavController(it).navigate(R.id.action_p