第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android RecyclerView使用詳解(一)

標(biāo)簽:
Android

一、前言 RecyclerView是谷歌V7包下新增的控件,用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视图缓.

先来说说RecyclerView的有点就是,他可以通过设置LayoutManager来快速实现listview、gridview、瀑布流的效果,而且还可以设置横向和纵向显示,添加动画效果也非常简单(自带了ItemAnimation,可以设置加载和移除时的动画,方便做出各种动态浏览的效果),也是官方推荐使用的.以下是官方的说明:

RecyclerView is a more advanced and flexible version of ListView. This widget is a container for large sets of views that can be recycled and scrolled very efficiently. Use the RecyclerView widget when you have lists with elements that change dynamically. 简单说就是当你需要动态展示一组数据的时候就会需要用到它。

讲了这么多虚的,接下来我们看看在代码中怎么来实现.

##二、实现

首先要用这个控件,你需要在gradle文件中添加包的引用(配合官方CardView使用)

[代码]xml代码:

?

1

2

compile   'com.android.support:cardview-v7:21.0.3'

compile 'com.android.support:recyclerview-v7:21.0.3'

 

然后是在XML文件用使用它

[代码]xml代码:

?

1

<android.support.v7.widget.recyclerview xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recycler_view" android:layout_centervertical="true" android:layout_centerhorizontal="true"></android.support.v7.widget.recyclerview>

 

接着在Activity中设置它

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

public class MainActivity   extends ActionBarActivity   {

    @InjectView(R.id.recycler_view)

    RecyclerView   mRecyclerView;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        ButterKnife.inject(this);

 

        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));//这里用线性显示 类似于listview

//          mRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));//这里用线性宫格显示 类似于grid view

//          mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,   OrientationHelper.VERTICAL));//这里用线性宫格显示 类似于瀑布流

        mRecyclerView.setAdapter(new NormalRecyclerViewAdapter(this));

    }

 

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.menu_main,   menu);

        return true;

    }

 

    @Override

    public boolean onOptionsItemSelected(MenuItem item) {

        int id = item.getItemId();

 

        if (id == R.id.action_settings) {

            return true;

        }

 

        return super.onOptionsItemSelected(item);

    }

}

 

然后是适配器代码

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

public class NormalRecyclerViewAdapter   extends RecyclerView.Adapter<normalrecyclerviewadapter.normaltextviewholder>   {

    private final LayoutInflater mLayoutInflater;

    private final Context mContext;

    private String[] mTitles;

 

    public NormalRecyclerViewAdapter(Context   context) {

        mTitles   = context.getResources().getStringArray(R.array.titles);

        mContext   = context;

        mLayoutInflater   = LayoutInflater.from(context);

    }

 

    @Override

    public NormalTextViewHolder   onCreateViewHolder(ViewGroup parent, int viewType) {

        return new NormalTextViewHolder(mLayoutInflater.inflate(R.layout.item_text,   parent, false));

    }

 

    @Override

    public void onBindViewHolder(NormalTextViewHolder holder, int position) {

        holder.mTextView.setText(mTitles[position]);

    }

 

    @Override

    public int getItemCount() {

        return mTitles == null ? 0 : mTitles.length;

    }

 

    public static class NormalTextViewHolder   extends RecyclerView.ViewHolder   {

        @InjectView(R.id.text_view)

        TextView   mTextView;

 

        NormalTextViewHolder(View   view) {

            super(view);

            ButterKnife.inject(this,   view);

            view.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View v) {

                    Log.d("NormalTextViewHolder",   "onClick--> position = " + getPosition());

                }

            });

        }

    }

}</normalrecyclerviewadapter.normaltextviewholder


原文链接:http://www.apkbus.com/blog-705730-61146.html

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消