MaterialDesign--(1)Google精心準備的Appcompat
為什麼要使用 appcompat,因為裡面是 google 精心準備得--解決 android 碎片化開發蛋疼的問題,讓我們的 app 編譯出來在各種高低版本之間、不同的廠商生產的 ROM 之間顯示出來的效果 UI 控制元件等有比較一致的體驗。
怎麼用?
1、引入 appcompat-v7專案,在 gradle檔案裡面新增 compile 'com.android.support:appcompat-v7:25.3.1'
的依賴(25.3.1只是其中一個版本),studio 會在建立專案的時候自動新增這個。如果在引用的時候報錯,則一般是由於 SDK、Appcompat-v7、build 版本新舊不相容引起的,調整為合適的版本重新 build 即可。
2、開啟 res/value/styles.xml檔案定義如下主題:
<!--actionBar欄顏色 不能新增透明通道-->
<item name="colorPrimary">@color/colorPrimary</item>
<!--狀態列顏色-->
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<!--editText線條、radioButton按鈕顏色-->
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowTranslucentStatus">true</item>
<!--actionBar文字顏色-->
<item name="android:textColorPrimary">#afaf00</item>
<!--主背景顏色-->
<item name="android:windowBackground">@color/windowBackground</item>
<!--虛擬按鈕顏色需要api21-->
<item name="android:navigationBarColor">@color/navigationBarColor</item>
可能上面每條屬性的文字描述不夠明確,一張圖看懂:
3、Activity 繼承 AppcompatActivity
MaterialDesign 相容性控制元件及主題
- 在 Appcompat-v7包裡面有很多為相容而生的控制元件
- 使用這些控制元件可以做到高低版本和不同的 ROM 之間體驗一致。還可以配合 Appcompat 的主題使用達到體驗一致性
1、相容控制元件
先感受一下API16和 API23的 dialog,撇開顏值不說,你們產品能接受 app 在不同的系統之間對話方塊這麼大的差異麼
所以在開發當中,dialog 一般用的是 v7包下的相容類android.support.v7.app.AlertDialog,點進原始碼裡面,我們可以看到 AlertDialog 繼承的是AppCompatDialog。
其實 Appcompat-v7包給我們準備了很多很多相容控制元件,具體有哪些,同學們可以點開原始碼自行閱讀。
2、Appcompat 相容主題
Appcompat 包的 res 裡面有很多定義好的主題,有興趣的同學也可以好好研究一下,常用的控制元件都有。
有話說
做了幾年的 Android 開發,平時也都有學習充電,掘金簡書的技術文章更是從最終的每篇必讀、每個程式碼都會下載下來看一看到現在的看到標題,就大致知道作者想要寫什麼東西,大致是怎樣實現的,然後點進去看一下,如果和自己猜想一樣,就直接略過了。聽起來好像成長了,但是實際開發中,遇到同樣的問題,還是得去翻別人的部落格 copy 程式碼,雖然並不是盲目的copy,但是終究不是自己純手擼出來的。
做了幾年開發,一路上走過來也和不少程式設計師打過交道,他們當中大部分都是 Coder,但也有不少 Developer。而我,也只是一個自命不凡的 Coder。
做為一個自命不凡的 Coder,還是要有點夢想的。這次的夢想就是準備把這兩年學習的零零碎碎知識點重新梳理一遍,整理出自己的知識體系,鞏固基礎。記得有個前輩一直是這樣教導我的:這些都是基礎,你不會?知識一點要成體系,成了體系才能進階;要有自己的思想,別僅僅停留在程式碼實現需求。
說了很多廢話,說說重點。本次規劃的知識體系有:高階 UI、效能優化、資料結構和演算法、移動架構四個模組。在整理的過程中,我會做下筆記並整理分享出來。準備用六個月左右的時間完成這件事,如果中途停更了,歡迎打臉。
最後,有些東西可能被我一筆帶過了,如果給讀者同學造成困惑,可以在下面留言提問,我看到會第一時間回覆的。
相關文章
- Cate:我是如何準備Google面試的Go面試
- 面試準備(1)面試
- 【面試準備·1】Babel面試Babel
- java面試準備(1)Java面試
- (1)環境準備
- Chapter One————1、行前準備APT
- 如何用一個月的時間準備google的技術面試Go面試
- 花了一個月精心準備30張視覺化大屏模板,可直接套用,拿走不謝視覺化
- 從0開始建立自己的部落格:準備環境 - Google Cloud PlatformGoCloudPlatform
- Google前工程經理王忻:如何準備軟體工程師的面試Go軟體工程工程師面試
- 20個為前端開發者準備的文件和指南(1)前端
- 【linux】驅動-1-環境準備Linux
- 主備切換的準備工作
- usb驅動開發1之學習準備
- vsphere實戰攻略1:基礎準備篇
- 測試基準資料的準備
- 從 Angular 1 升級到 Angular 2 需要準備的步驟Angular
- 用Flutter開發桌面應用?兩年了!Google還沒準備好?FlutterGo
- 你的備庫做好準備了嗎
- 主備切換的準備工作(二)
- JAVA準備Java
- bq準備
- sd準備
- 面試準備面試
- sun工程師來了,準備解決這個PS1的電源問題,準備更換電源工程師
- Openfire安裝準備-MySQL資料庫準備MySql資料庫
- appcompat_v7報錯,appcompat感嘆號解決APP
- APP 開發從 0 到 1(一)需求與準備APP
- RxSwift之路 1#Swift語法知識準備Swift
- Google遵循的軟體行為準則Go
- Oracle 11G RAC叢集安裝(1)——安裝前的準備Oracle
- 如何準備面試?面試
- 面試準備(一)面試
- 準備提交appAPP
- 技術準備
- java面試準備Java面試
- 1、Entity Framework Core 3.1入門教程-概述和準備工作Framework
- 利用python進行資料分析之準備工作(1)Python