Creating Apps With Material Design —— Creating Lists and Cards

轉載請注明?http://blog.csdn.net/eclipsexys?翻譯自Developer Android。時間倉促,有翻譯問題請留言指出,謝謝


創建Lisst和Cards


在你的應用程序創建復雜的清單,并與材料設計風格卡。您能夠使用RecyclerView和CardView部件。?


創建RecyclerView?


該RecyclerView widget是ListView中的更先進,更靈活的版本號。這個小工具是一個容器。用于顯示。能很有效地維護了意見數量有限,滾動大的數據集。

當你有收集數據。它的元素在執行時改變基于用戶行為和網絡事件使用RecyclerView部件。?


該RecyclerView類簡化,提供顯示和處理大數據集:?

? ? 定位項目布局管理器?
? ? 默認的動畫為公用項的操作。比如刪除或添加的項目?

您還能夠在RecyclerView部件定義自己定義布局管理器和動畫的靈活性。


要使用RecyclerView小部件。你必須指定一個適配器和一個布局管理器。要創建一個適配器。擴展RecyclerView.Adapter類。實施的細節取決于你的數據集的詳細情況和意見的類型。欲了解很多其它信息。請參見以下的樣例。?

RecyclerView內部的布局管理器的位置的項目的意見,并確定何時重用項目的看法不再對用戶可見。重用(或回收)的圖,布局管理器可能會問適配器與數據集不同的元素替換視圖的內容。以這樣的方式回收的觀點提高通過避免產生不必要的視圖或執行昂貴findViewById()的查找性能。?

RecyclerView提供這些內置的布局管理器:?

? ? LinearLayoutManager顯示在垂直或水平滾動列表項。

?
? ? GridLayoutManager顯示在網格中的項目。?
? ? StaggeredGridLayoutManager顯示了交錯網格項目。

?

要創建自己定義布局管理器。擴展RecyclerView.LayoutManager類。?


動畫?


動畫的加入和刪除項目中默認RecyclerView啟用。要自己定義這些動畫,繼承RecyclerView.ItemAnimator類。并使用RecyclerView.setItemAnimator()方法。




Examples


以下的代碼演示樣例演示怎樣將RecyclerView加入到布局:

<!-- A RecyclerView with some commonly used attributes -->
<android.support.v7.widget.RecyclerViewandroid:id="@+id/my_recycler_view"android:scrollbars="vertical"android:layout_width="match_parent"android:layout_height="match_parent"/>

一旦你加入了一個RecyclerView小部件布局,獲取句柄的對象。將其連接到一個布局管理器,并附上要顯示的數據適配器:

public class MyActivity extends Activity {private RecyclerView mRecyclerView;private RecyclerView.Adapter mAdapter;private RecyclerView.LayoutManager mLayoutManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.my_activity);mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);// use this setting to improve performance if you know that changes// in content do not change the layout size of the RecyclerViewmRecyclerView.setHasFixedSize(true);// use a linear layout managermLayoutManager = new LinearLayoutManager(this);mRecyclerView.setLayoutManager(mLayoutManager);// specify an adapter (see also next example)mAdapter = new MyAdapter(myDataset);mRecyclerView.setAdapter(mAdapter);}...
}

該適配器提供訪問信息在您的數據集。創建視圖的項目,代替了一些新的數據項的視圖的內容時,原來的產品不再可見。以下的代碼演示樣例顯示了一個簡單的實現,它由一個字符串數組的使用TextView的小部件顯示的一組數據:

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {private String[] mDataset;// Provide a reference to the views for each data item// Complex data items may need more than one view per item, and// you provide access to all the views for a data item in a view holderpublic static class ViewHolder extends RecyclerView.ViewHolder {// each data item is just a string in this casepublic TextView mTextView;public ViewHolder(TextView v) {super(v);mTextView = v;}}// Provide a suitable constructor (depends on the kind of dataset)public MyAdapter(String[] myDataset) {mDataset = myDataset;}// Create new views (invoked by the layout manager)@Overridepublic MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,int viewType) {// create a new viewView v = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_text_view, parent, false);// set the view's size, margins, paddings and layout parameters...ViewHolder vh = new ViewHolder(v);return vh;}// Replace the contents of a view (invoked by the layout manager)@Overridepublic void onBindViewHolder(ViewHolder holder, int position) {// - get element from your dataset at this position// - replace the contents of the view with that elementholder.mTextView.setText(mDataset[position]);}// Return the size of your dataset (invoked by the layout manager)@Overridepublic int getItemCount() {return mDataset.length;}
}

創建CardView

CardView擴展的FrameLayout類,并同意你顯示里面有跨平臺一致的外觀卡的信息。 CardView部件能夠有陰影和圓角。?

要創建具有陰影卡。使用card_view:cardElevation屬性。 CardView使用真實高程和動態陰影在Android5.0(API等級21)以上。并回落到較早版本號的綱領性陰影實施。

欲了解很多其它信息,請參見維護兼容性。

?

使用這些屬性來定制CardView小部件的外觀:?

? ? 要設置圓角半徑在你的布局,使用card_view:cardCornerRadius屬性。

?
? ? 要設置圓角半徑在你的代碼中。使用CardView.setRadius方法。?
? ? 設置卡的背景顏色,使用card_view:cardBackgroundColor屬性。

?

以下的代碼演示樣例顯示了怎樣在您的布局CardView部件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:card_view="http://schemas.android.com/apk/res-auto"... ><!-- A CardView that contains a TextView --><android.support.v7.widget.CardViewxmlns:card_view="http://schemas.android.com/apk/res-auto"android:id="@+id/card_view"android:layout_gravity="center"android:layout_width="200dp"android:layout_height="200dp"card_view:cardCornerRadius="4dp"><TextViewandroid:id="@+id/info_text"android:layout_width="match_parent"android:layout_height="match_parent" /></android.support.v7.widget.CardView>
</LinearLayout>


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/458777.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458777.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458777.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機考研自命題院校雙非,計算機考研408——951211院校匯總

眾所周知&#xff0c;計算機考研408計算機學科基礎綜合難度與一些頂尖985自命題相比也是不落下風的&#xff0c;號稱最難工科專業課(請忽略912這種殿堂級別的)&#xff0c;難度大、知識點龐雜也是前些年眾多高校紛紛脫離408統考的原因。19年的計算機類考研火到爆炸&#xff0c;…

Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)

第一次鼓搗Docker&#xff0c;- - ! 報錯&#xff1a; serverubuntu1987:~$ sudo apt-get update E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable) E: Unable to lock directory /var/lib/apt/lists/ 轉載于:https://www.cnblo…

新手學Struts(一)----JSP+Servlet講解MVC實現原理

MVC基本原理一個簡單的例子改良的例子Struts基本流程的實現最近在學SSH&#xff08;Struts HibernateSpring)&#xff0c;這也算是一個比較經典的框架了&#xff0c;之前都是看人家大牛說這個框架&#xff0c;那個框架&#xff0c;說的真溜&#xff0c;自己也是佩服的五體投地啊…

中國首臺千萬億次超級計算機,中國首臺千萬億次超級計算機首批設備開始試用...

新華社天津&#xff11;月&#xff11;&#xff13;日電(記者 周潤健 羅捷)記者&#xff11;&#xff13;日從國家超級計算天津中心獲悉&#xff0c;中國首臺千萬億次超級計算機“天河一號”首批設備調試工作結束&#xff0c;具備向客戶提供服務的條件&#xff0c;“天河一號”…

Outlook Express 錯誤代碼表

錯誤碼 意義 一般 0x800C01310x800C013E 可能是 Folders.dbx 檔案屬性錯誤或損壞. 0x800CCC00 身份驗證&#xff08;Authentication&#xff09;未載入 0x800CCC01 認證&#xff08;Certificate&#xff09;內容錯誤 0x800CCC02 認證日期錯誤 0x800CCC03 使用者已聯機 0x800CCC…

USB設備枚舉過程

&#xff08;1&#xff09;集線器檢測新設備 &#xff08;集線器的英文稱為“Hub”&#xff09;主機集線器監視著每個端口的信號電壓&#xff0c;當有新設備接入時便可覺察。&#xff08;集線器端口的兩根信號線的每一根都有15kΩ的下拉電阻&#xff0c;而每一個設備在D都有一個…

windows下apache+php+mysql 環境配置方法

轉自&#xff1a;http://www.jb51.net/article/30128.htm 一 準備 1 下載apache http://httpd.apache.org/download.cgi#apache24 httpd-2.2.22-win32-x86-openssl-0.9.8t.msiopenssl表示帶有openssl模塊&#xff0c;利用openssl可給Apache配置SSL安全鏈接 2 下載php http://wi…

計算機工作原理 公開課,《計算機的基本工作原理》公開課材料(11頁)-原創力文檔...

《計算機系統的組成》教學設計教師&#xff1a;吳軍一、學習者分析初一的學生&#xff0c;具有活潑好動的特點&#xff0c;懷著對初中生活的憧憬來到一個新的環境里&#xff0c;對每樣事物都充滿著好奇&#xff0c;都想去探個究竟。隨著社會的進步&#xff0c; 計算機的使用范圍…

USB枚舉過程分析

1. 枚舉是什么? 枚舉就是從設備讀取一些信息&#xff0c;知道設備是什么樣的設備&#xff0c;如何進行通信&#xff0c;這樣主機就可以根據這些信息來加載合適的驅動程序。調試USB設備&#xff0c;很重要的一點就是USB的枚舉過程&#xff0c;只要枚舉成功了&#xff0c;那么就…

linux -- read(), write()

read()函數 2011-03-23 16:28:37| 分類&#xff1a; linux | 標簽&#xff1a; |字號大中小 訂閱 read函數從打開的設備或文件中讀取數據。 #include <unistd.h> ssize_t read(int fd, void *buf, size_t count); 返回值&#xff1a;成功返回讀取的字節數&…

jquery的$.extend、$.fn.extend、 jQuery.extend( target, object1, [objectN])作用及區別

jQuery為開發插件提拱了兩個方法&#xff0c;分別是&#xff1a; jQuery.fn.extend();jQuery.extend(); 雖然 javascript 沒有明確的類的概念&#xff0c;但是用類來理解它&#xff0c;會更方便。 jQuery便是一個封裝得非常好的類&#xff0c;比如我們用 語句 $("#btn1&…

CATia對計算機配置要求,【2人回答】求CATIA對電腦的詳細配置要求-3D溜溜網

回答&#xff1a;1、內存要求在32G和64G之間。2、硬盤要求選擇7200轉機械硬盤&#xff0c;4k以上分辨&#xff0c;就選擇SSD固態硬盤。3、CPU要求睿頻在4.1GHZ以上&#xff0c;核心在6和8核之間。4、顯卡要求顯存在6GB和11GB之間&#xff0c;位寬要求在192bit和384bit之間。5、…

如何制作自動更新程序?

原文出自&#xff1a;http://blog.csdn.net/metaphysis/article/details/18866631 如何制作自動更新程序&#xff1f; [版權所有 邱秋 2014 metaphysisyeah.net, 轉載請注明出處] 最近為單位寫了一個C/S結構的軟件&#xff0c;這個軟件是工作在單位的局域網內的。為了減輕為程序…

包含JS交互的混淆出錯

2019獨角獸企業重金招聘Python工程師標準>>> 小上司離職&#xff0c;我接手他負責的項目&#xff0c;進行版本更新的時候&#xff0c;在生成jar包測試的時候&#xff0c;點擊按鈕沒有反應&#xff0c;頁面是webview&#xff0c;按鈕則是與js交互&#xff0c;logcat打…

計算機常用代碼大全,常用電腦命令大全【圖文】

導語 &#xff1a;電腦&#xff0c;這個在前幾年貌似還離我們非常遙遠的詞匯&#xff0c;現在隨著信息化社會的不斷發展&#xff0c;已經走進了我們的千家萬戶。現在每一家新 裝修 &#xff0c;它都作為一種必備的家用電器來使用。由此可見電腦對我們 現代 人的重要性。但電腦畢…

細數技術指標-[轉載]

技術指標類別龐雜&#xff0c;要一一學全&#xff0c;基本不可能&#xff0c;也沒有這個必要。我們只要掌握幾個常用的指標&#xff0c;了解它們的原理&#xff0c;從而舉一反三&#xff0c;就足夠了。其實任何一種技術指標都是從形態、價格、量、時間這四項出發的&#xff0c;…

[javaSE] 看博客學習java并發編程

共享性 多線程操作同一個數據&#xff0c;產生線程安全問題 新建一個類ShareData 設計一個int 型的成員變量count 設計一個成員方法addCount()&#xff0c;把count變量 在main函數中開啟多個線程操作這個成員變量&#xff0c;在main函數里 獲取ShareData對象&#xff0c;new 出…

GetProcAddress() LoadLibrary() DLL

GetProcAddress函數檢索指定的動態鏈接庫(DLL)中的輸出庫函數地址。 函數原型&#xff1a; FARPROC GetProcAddress( HMODULE hModule, // DLL模塊句柄 LPCSTR lpProcName // 函數名 ); 參數&#xff1a; hModule [in] 包含此函數的DLL模塊的句柄。LoadLibrary、AfxLoadLibrary…

小學計算機輸入法主題教研設計,《拼音輸入法》教學設計.doc

10.拼音輸入法【教材分析】《拼音輸入法》是浙江攝影出版社出版的新版《小學信息技術》三年級下冊第三單元第10課。信息技術是一門技能課&#xff0c;學以致用是技能課的教學目的&#xff0c;相對來說&#xff0c;在小學生的學習和生活中&#xff0c;用到這項技能的地方還比較少…

圖論測試題(一)第一題:longest

第一題&#xff1a;longest 烏托邦有n個城市&#xff0c;某些城市之間有公路連接。任意兩個城市都可以通過公路直接或者間接到達&#xff0c;并且任意兩個城市之間有且僅有一條路徑&#xff08;What does this imply? A tree!&#xff09;。 每條公路都有自己的長度&#xff0…