Android開發筆記(7.10)
關於編譯器
1. 顏色切換
一開始對白色界面看着眼睛不舒服,開啓黑色狀態:Files->Setting->Appearance&Behavior->Appearance中第一個選項Theme選擇Darcula即爲黑夜模式。
問題總和
1. 什麼是回調?
解決:假設有一個A方法,該方法運用到一個接口和接口中的抽象方法,但是抽象方法沒有具體實現,需要B類去實現該方法,而B類方法實現該方法中,它本身不會使用該方法,而是傳遞給A類,讓A類去實現,這種機制成爲回調。
佈局管理器
1. 線性佈局(LinearLayout)
線性佈局是最常見也是使用最多的佈局。
2. 表格佈局(TableLayout)
表格佈局是線性佈局的擴展,本質上還是線性佈局。表格佈局採用行,列的方式來管理UI組件。TableLayout不需要明確聲明包含多少行多少列,而是通過添加TableRow,其他組件來控制表格的行數和列數。
-
TableLayout中添加一個TableRow,該TableRow就是一個表格行,在該TableRow中添加控件,每添加一個子控件就直接佔用一行,TableRow也是一個容器。
-
如果在TableLayout中添加組件,那麼該組建直接佔用一行。
-
在表格佈局中,列寬取決於該列中最寬的組件。整個表格的寬度則取決於父容器的寬度(默認總是佔滿父容器本身)。
表格容器中,單元格格式(某個列的設置)有以下三種行爲方式。
- Shrinkable:該列的所有單元格寬度可以收縮以適應父容器的寬度。
- Strechable:該列的所有單元格寬度可以被拉伸保證組件能夠完全填滿表格空餘空間。
- Collapsed:該列所有單元格會被隱藏。
3. 幀佈局(FrameLayout)
幀佈局由FrameLayout所代表,直接繼承了ViewGroup組件。爲每個加入其中的組件都創建一個空白的區域(稱爲每一幀)
類似覆蓋元素佈局(類似css裏面的relative,實現重複覆蓋)
4. 絕對佈局(AbsoluteLayout)
現在使用絕對佈局不是一個好的想法,現在手機分辨率變化很多,一直選用絕對佈局是不明智的選擇,已經過時。
&emsp若是一定想選用絕對佈局,儘量採用距離單位dp(一種基於屏幕密度的抽象單位)
5. 約束佈局
從功能上說,約束佈局是相對佈局的改進,可以控制佈局在各處的百分比,或者使控件位於左邊25dp處。(有點和css中left,right挺像)
Android studio中空項目的時候的“HelloWorld”就是約束佈局。
一般約束佈局可以拖動xml流覽圖裏面的帶圓圈的點來實現,如果覺得不夠精準可以使用studio提供的Inspector經行控制
注:約束佈局裏面的width或者height:match constraint或是0dp,指的是寬度或者高度完全按照約束計算,而不是款或高是0dp。