《第一行代碼》閱讀筆記 (2)

一、UI界面開發(fā)

常見控件:TextView宗收、Button漫拭、EditText、ImageView混稽、ProgressBar采驻、AlertDialog、ProgressDialog匈勋。

四大布局方式:LinearLayout礼旅、RelativeLayout、FrameLayout洽洁、TableLayout痘系。

自定義控件與ListView定制及優(yōu)化

dp與sp:dp是密度無關(guān)像素的意思, 也被稱作dip饿自, 和px相比汰翠, 它在不同密度的屏幕中的顯示比例將保持一致。sp是可伸縮像素的意思昭雌, 它采用了和dp同樣的設(shè)計理念复唤, 解決了文字大小的適配問題。Android中的密度就是屏幕每英寸所包含的像素數(shù)烛卧,通常以dpi為單位佛纫。比如一個手機(jī)屏幕的寬是2英寸長是3英寸,如果它的分辨率是320*480像素唱星,那這個屏幕的密度就是160dpi雳旅,如果它的分辨率是640*960,那這個屏幕的密度就是320dpi间聊, 因此密度值越高的屏幕顯示的效果就越精細(xì)。

二抵拘、碎片(Fragment)

碎片(Fragment)是一種可以嵌入在活動當(dāng)中的UI片段哎榴,它能讓程序更加合理和充分地利用大屏幕的空間, 因而在平板上應(yīng)用的非常廣泛。

動態(tài)添加碎片步驟

動態(tài)添加碎片主要分為5步尚蝌。

1.創(chuàng)建待添加的碎片實例迎变。

2.獲取到FragmentManager,在活動中可以直接調(diào)用getFragmentManager()方法得到飘言。

3.開啟一個事務(wù)衣形,通過調(diào)用beginTransaction()方法開啟。

4.向容器內(nèi)加入碎片姿鸿, 一般使用replace()方法實現(xiàn)谆吴, 需要傳入容器的id和待添加的碎片實例。

5.提交事務(wù)苛预,調(diào)用commit()方法來完成句狼。

在碎片中模擬返回棧

FragmentTransaction中提供了一個addToBackStack()方法,可以用于將一個事務(wù)添加到返回棧中热某,模仿類似于返回棧的效果腻菇,按下Back鍵可以回到上一個碎片。

碎片與活動之間通信

為了方便碎片和活動之間進(jìn)行通信昔馋,F(xiàn)ragmentManager提供了一個類似于findViewById()的方法筹吐,專門用于從布局文件中獲取碎片的實例。

RightFragment rightFragment = (RightFragment) getFragmentManager().findFragmentById(R.id.right_fragment);

調(diào)用FragmentManager的findFragmentById()方法秘遏, 可以在活動中得到相應(yīng)碎片的實例丘薛,然后就能輕松地調(diào)用碎片里的方法了。

每個碎片中都可以通過調(diào)用getActivity()方法來得到和當(dāng)前碎片相關(guān)聯(lián)的活動實例垄提,有了活動實例之后榔袋, 在碎片中調(diào)用活動里的方法就變得輕而易舉了。 另外當(dāng)碎片中需要使用Context對象時铡俐, 也可以使用getActivity()方法凰兑, 因為獲取到的活動本身就是一個Context對象了。

MainActivity activity = (MainActivity) getActivity();

碎片的生命周期

1.運(yùn)行狀態(tài)

當(dāng)一個碎片是可見的审丘, 并且它所關(guān)聯(lián)的活動正處于運(yùn)行狀態(tài)時吏够, 該碎片也處于運(yùn)行狀態(tài)。

2.暫停狀態(tài)

當(dāng)一個活動進(jìn)入暫停狀態(tài)時(由于另一個未占滿屏幕的活動被添加到了棧頂)滩报,與它相關(guān)聯(lián)的可見碎片就會進(jìn)入到暫停狀態(tài)锅知。

3.停止?fàn)顟B(tài)

當(dāng)一個活動進(jìn)入停止?fàn)顟B(tài)時, 與它相關(guān)聯(lián)的碎片就會進(jìn)入到停止?fàn)顟B(tài)脓钾。 或者通過調(diào)用FragmentTransaction的remove()售睹、replace()方法將碎片從活動中移除,但有在事務(wù)提交之前調(diào)用addToBackStack()方法可训,這時的碎片也會進(jìn)入到停止?fàn)顟B(tài)昌妹〈肥啵總的來說,進(jìn)入停止?fàn)顟B(tài)的碎片對用戶來說是完全不可見的飞崖,有可能會被系統(tǒng)回收烂叔。

4.銷毀狀態(tài)

碎片總是依附于活動而存在的, 因此當(dāng)活動被銷毀時固歪, 與它相關(guān)聯(lián)的碎片就會進(jìn)入到銷毀狀態(tài)蒜鸡。或者通過調(diào)用FragmentTransaction的remove()牢裳、replace()方法將碎片從活動中移除逢防,但在事務(wù)提交之前并沒有調(diào)用addToBackStack()方法,這時的碎片也會進(jìn)入到銷毀狀態(tài)贰健。

碎片還提供了一些附加的回調(diào)方法:

1. onAttach()

當(dāng)碎片和活動建立關(guān)聯(lián)的時候調(diào)用胞四。

2. onCreateView()

為碎片創(chuàng)建視圖(加載布局)時調(diào)用。

3. onActivityCreated()

確保與碎片相關(guān)聯(lián)的活動一定已經(jīng)創(chuàng)建完畢的時候調(diào)用伶椿。

4. onDestroyView()

當(dāng)與碎片關(guān)聯(lián)的視圖被移除的時候調(diào)用辜伟。

5. onDetach()

當(dāng)碎片和活動解除關(guān)聯(lián)的時候調(diào)用。

動態(tài)加載布局

1.使用限定符

限定符

2.使用最小限定符

使用large限定符成功解決了單頁雙頁的判斷問題脊另,不過很快又有一個新的問題出現(xiàn)了导狡,large到底是指多大呢?有的時候我們希望可以更加靈活地為不同設(shè)備加載布局偎痛,不管它們是不是被系統(tǒng)認(rèn)定為 “l(fā)arge”旱捧,這時就可以使用最小寬度限定符(Smallest-width Qualifier)了。

最小寬度限定符允許我們對屏幕的寬度指定一個最小指(以dp為單位)踩麦, 然后以這個最小值為臨界點枚赡, 屏幕寬度大于這個值的設(shè)備就加載一個布局, 屏幕寬度小于這個值的設(shè)備就加載另一個布局谓谦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贫橙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子反粥,更是在濱河造成了極大的恐慌卢肃,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件才顿,死亡現(xiàn)場離奇詭異莫湘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)郑气,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門幅垮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人尾组,你說我怎么就攤上這事军洼」Γ” “怎么了演怎?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵匕争,是天一觀的道長。 經(jīng)常有香客問我爷耀,道長甘桑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任歹叮,我火速辦了婚禮跑杭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咆耿。我一直安慰自己德谅,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布萨螺。 她就那樣靜靜地躺著窄做,像睡著了一般。 火紅的嫁衣襯著肌膚如雪慰技。 梳的紋絲不亂的頭發(fā)上椭盏,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機(jī)與錄音吻商,去河邊找鬼掏颊。 笑死,一個胖子當(dāng)著我的面吹牛艾帐,可吹牛的內(nèi)容都是我干的乌叶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼柒爸,長吁一口氣:“原來是場噩夢啊……” “哼准浴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起揍鸟,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤兄裂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后阳藻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晰奖,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年腥泥,在試婚紗的時候發(fā)現(xiàn)自己被綠了匾南。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛔外,死狀恐怖蛆楞,靈堂內(nèi)的尸體忽然破棺而出溯乒,到底是詐尸還是另有隱情,我是刑警寧澤豹爹,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布裆悄,位于F島的核電站,受9級特大地震影響臂聋,放射性物質(zhì)發(fā)生泄漏光稼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一孩等、第九天 我趴在偏房一處隱蔽的房頂上張望艾君。 院中可真熱鬧,春花似錦肄方、人聲如沸冰垄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽虹茶。三九已至,卻和暖如春伴奥,著一層夾襖步出監(jiān)牢的瞬間写烤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工拾徙, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留洲炊,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓尼啡,卻偏偏與公主長得像暂衡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子崖瞭,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容