1.RecyclerView
2.CardView
3.Palette
《Material Design》(http://www.linuxidc.com/Linux/2014-09/106824.htm)提到,Android L版本中新增了RecyclerView、CardView 、Palette。RecyclerView、CardView為用於顯示復雜視圖的新增Widget。Palette作為調色板類,可以讓你從圖像中提取突出的顏色。
RecyclerView
RecyclerView作為替代ListView使用,RecyclerView標准化了ViewHolder,ListView中convertView是復用的,在RecyclerView中,是把ViewHolder作為緩存的單位了,然後convertView作為ViewHolder的成員變量保持在ViewHolder中,也就是說,假設沒有屏幕顯示10個條目,則會創建10個ViewHolder緩存起來,每次復用的是ViewHolder,所以他把getView這個方法變為了onCreateViewHolder。 ViewHolder更適合多種子布局的列表,尤其IM的對話列表。RecyclerView不提供setOnItemClickListener方法,你可以在ViewHolder中添加事件。RecyclerView的使用可以參考《Material Design UI Widgets》 http://www.linuxidc.com/Linux/2014-09/106840.htm 。
RecyclerView可以實現橫向、縱向滑動視圖:
RecyclerView 1
RecyclerView 2
設置橫向:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recycler_view_horizontal);
// specify an adapter (see also next example)
List<MyAdapter.Item> itemList = new ArrayList<MyAdapter.Item>();
for (int i = 0; i < 100; i++)
itemList.add(new MyAdapter.Item("Item " + i, "world"));
mAdapter = new MyAdapter(itemList);
mRecyclerViewHorizontal = (RecyclerView) findViewById(R.id.my_recycler_view_horizontal);
mRecyclerViewHorizontal.setHasFixedSize(true);
// use a linear layout manager
LinearLayoutManager mLayoutManager = new LinearLayoutManager(this);
mLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
mRecyclerViewHorizontal.setLayoutManager(mLayoutManager);
mRecyclerViewHorizontal.setAdapter(mAdapter);
}
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-09/106841p2.htm