国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android應用開發中CardView的初步使用指南

2020-04-11 10:46:01
字體:
來源:轉載
供稿:網友

引言

在Google I/O 2014上,Google公布了Android L Preview版本,此版本的UI有了非常大的改變,很炫很給力!同時,Google也給出了兩個可以向下兼容的控件放到了V7包中,分別是RecyclerView和CardView,這篇博文就說一下怎么使用CardView。

CardView的包在哪?

雖然說CardView整合到了V7中,但是在support-v7中并不能發現,通過查看sdk extra路徑下的文件可以發現,其名字叫cardview-v7。

這個路徑下就有cardview相關的東西了,包括已經打包好的aar包。

依賴

如果應用是以Gradle構建的,引用CardView就很簡單了:

dependencies {  compile fileTree(dir: 'libs', include: ['*.jar'])  compile 'com.android.support:cardview-v7:21.0.0-rc1' } 

如果Gradle提示找不到,就證明你的SDK需要更新了,把Google support包更新到最新吧。

如果沒有用Gradle構建,就需要找到jar包引用進來,而jar包隱藏在CardView的aar文件中:

以壓縮包方式打開aar,提取出其中的class.jar,這個jar文件就可以當作庫文件進行依賴了。

依賴添加完成后,進行編譯會發現出現minSdk錯誤,cardview-v7的minsdk為“L",其實CardView能夠向下兼容到2.0。
在Android gradle tools 0.11版本后,可以通過xml中的tools配置進行節點替換,而AndrodiStudio對gradle tools的支持更好一些,其ParentIDE Intellij都不行,所以目前我能找到的正常使用CardView的IDE及配置辦法只有在AndroidStudio中,不過這也是趨勢,早用早好的事情。

解決辦法:

在使用CardView的工程的AndroidManifest.xml中:

<uses-sdk   xmlns:tools="http://schemas.android.com/tools"   tools:node="replace" /> 

意思就是在做AndroidoManifest.xml編譯時,采用替換的策略,即全部使用build.gradle中定義的屬性作為最終屬性。添加完成后,再次編譯,問題解決。

使用

在使用CardVIew之前,要明白CardView是個什么東西。CardView如Linearlayout、Framelayout一樣都是ViewGroup,即其他控件的容器。CardView繼承于Framelayout,所以Framelayout的屬性他都有,同時CardView還有幾個特殊的屬性:

在API21(Android L)等級以上擁有屬性elevation,意為CardView的Z軸陰影,只有L平臺有效。只能通過xml中的elevation屬性指定;
其余(2.0以上)有屬性cardBackgroundColor,意為CardView的卡片顏色,只能通過xml的cardBackgroundColor進行指定;
其余(2.0以上)有屬性cardConerRadius,意為CardView卡片的四角圓角矩形程度,單位dimen(dp px sp),可以通過xml指定,也可以通過代碼中的setRadius指定。

示例:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-auto"  android:id="@+id/cardview"  app:cardCornerRadius="8dp"  app:cardBackgroundColor="@color/black"  android:layout_margin="8dp"  android:layout_height="80dp"  android:layout_width="match_parent">   <TextView   android:text="TextView in CardView"   android:layout_gravity="center"   android:textSize="26sp"   android:textColor="@color/l_white"   android:layout_width="wrap_content"   android:layout_height="wrap_content" /> </android.support.v7.widget.CardView> 

效果圖:

2016222154217896.jpg (269×77)

CardView繼承至FrameLayout類,可以在一個卡片布局中一致性的顯示內容,卡片可以包含圓角和陰影。CardView是一個Layout,可以布局其他View。

CardView常用屬性:

  • card_view:cardElevation 陰影的大小
  • card_view:cardMaxElevation 陰影最大高度
  • card_view:cardBackgroundColor 卡片的背景色
  • card_view:cardCornerRadius 卡片的圓角大小
  • card_view:contentPadding 卡片內容于邊距的間隔
  • card_view:contentPaddingBottom 卡片內容與底部的邊距
  • card_view:contentPaddingTop 卡片內容與頂部的邊距
  • card_view:contentPaddingLeft 卡片內容與左邊的邊距
  • card_view:contentPaddingRight 卡片內容與右邊的邊距
  • card_view:contentPaddingStart 卡片內容于邊距的間隔起始
  • card_view:contentPaddingEnd 卡片內容于邊距的間隔終止
  • card_view:cardUseCompatPadding 設置內邊距,V21+的版本和之前的版本仍舊具有一樣的計算方式
  • card_view:cardPreventConrerOverlap 在V20和之前的版本中添加內邊距,這個屬性為了防止內容和邊角的重疊

再來看一個例子:

<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"  android:layout_width="200dp"  android:layout_height="wrap_content"  card_view:cardBackgroundColor="#303069"  card_view:cardCornerRadius="10dp"  card_view:cardPreventCornerOverlap="true"  card_view:cardUseCompatPadding="true"  card_view:contentPadding="10dp">  ...</android.support.v7.widget.CardView>

注:在gradle的dependencies中添加`compile 'com.android.support:cardview-v7:21.+'`
然后視圖中的卡片基本上會這樣顯示:

2016222154254533.png (571×910)

CardView繼承至FrameLayout類,可以在一個卡片布局中一致性的顯示內容,卡片可以包含圓角和陰影。CardView是一個Layout,可以布局其他View。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿拉善右旗| 彭山县| 临清市| 民勤县| 运城市| 尼玛县| 宜都市| 新民市| 湖南省| 巩义市| 若羌县| 泰来县| 遂川县| 蓬溪县| 晴隆县| 曲麻莱县| 扎兰屯市| 伊金霍洛旗| 胶州市| 虎林市| 西吉县| 杭州市| 依兰县| 靖远县| 祥云县| 静安区| 海南省| 阳原县| 治县。| 芦溪县| 兰考县| 清流县| 天门市| 阿克苏市| 龙陵县| 封开县| 明星| 胶州市| 旬邑县| 化隆| 土默特右旗|