• Android RecyclerView 瀑布流


     

     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     android:layout_width="match_parent"
     3     android:layout_height="wrap_content"
     4     android:background="@android:color/holo_blue_light">
     5 
     6     <ImageView
     7         android:id="@+id/iv"
     8         android:layout_width="match_parent"
     9         android:layout_height="wrap_content"
    10         android:gravity="center"
    11         android:padding="10dp"
    12         android:src="@mipmap/ic_launcher"
    13         android:scaleType="fitXY"
    14         android:adjustViewBounds="true"/>
    15 
    16 </LinearLayout>
    item_layout.xml

    导入RecyclerView包

     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     android:id="@+id/activity_main"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent">
     5 
     6     <android.support.v7.widget.RecyclerView
     7         android:id="@+id/recyclerview"
     8         android:layout_width="match_parent"
     9         android:layout_height="match_parent">
    10 
    11     </android.support.v7.widget.RecyclerView>
    12 </RelativeLayout>
    activity_main.xml
     1 public class MainActivity extends AppCompatActivity {
     2 
     3     RecyclerView mRecycleView;
     4     List<Image> mList = new ArrayList<>();
     5 
     6     @Override
     7     protected void onCreate(Bundle savedInstanceState) {
     8         super.onCreate(savedInstanceState);
     9         setContentView(R.layout.activity_main);
    10 
    11         mRecycleView = (RecyclerView) findViewById(R.id.recyclerview);
    12         //初始化数据
    13         initData();
    14         //设置适配器
    15         mRecycleView.setAdapter(new MyAdapter());
    16         //设置布局管理器
    17         //mRecycleView.setLayoutManager(new LinearLayoutManager(this));//与ListView类似
    18         mRecycleView.setLayoutManager(new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL));
    19         //设置item分割线
    20 
    21         //设置item动画
    22     }
    23 
    24 
    25     private void initData() {
    26         for (int i = 1; i <= 20; i++) {
    27             try {
    28 
    29                 mList.add(new Image(R.mipmap.class.getField("img0"+i).getInt(null)));
    30 
    31             } catch (IllegalAccessException e) {
    32                 e.printStackTrace();
    33             } catch (NoSuchFieldException e) {
    34                 e.printStackTrace();
    35             }
    36         }
    37 
    38 
    39     }
    40 
    41 
    42     //布局的内容组件
    43     class MyViewHolder extends RecyclerView.ViewHolder{
    44 
    45         ImageView iv;
    46 
    47         public MyViewHolder(View itemView) {
    48             super(itemView);
    49             iv = (ImageView) itemView.findViewById(R.id.iv);
    50         }
    51     }
    52 
    53     //适配器,继承RecyclerView.Adapter,泛型,里面必须是Recycler.ViewHolder的子类
    54     class MyAdapter extends RecyclerView.Adapter<MyViewHolder>{
    55 
    56         /**
    57          * 一个页面没有加载完毕,会持续调用该方法。
    58          * @param parent
    59          * @param viewType
    60          * @return
    61          */
    62         @Override
    63         public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    64             //创建ViewHolder
    65             //导入布局
    66             View layout = View.inflate(getBaseContext(),R.layout.item_layout,null);
    67             MyViewHolder viewHolder = new MyViewHolder(layout);
    68             return viewHolder;
    69         }
    70 
    71         @Override
    72         public void onBindViewHolder(MyViewHolder holder, int position) {
    73             //为每一个布局设置属性。
    74             //holder  组件
    75             //当前第几项, mList.get(position)拿到数据,给holder设置
    76 
    77             holder.iv.setImageResource(mList.get(position).imgId);
    78         }
    79 
    80         @Override
    81         public int getItemCount() {
    82             return mList.size();
    83         }
    84     }
    85 
    86     class Image{
    87         int imgId;
    88         public Image(int imgId){
    89             this.imgId = imgId;
    90         }
    91     }
    92 }
    MainActivity.java
  • 相关阅读:
    zabbix_agent 主动模式配置
    zabbix 监控ipmi
    超级详细全截图化VMware 安装ubantu
    docker 部署
    C# DataTable和List转换操作类
    C#类型转换工具类
    C# 注册windows 服务
    C# wsdl.exe 生成类文件
    visual studio code download url
    c# xml序列化和反序列化
  • 原文地址:https://www.cnblogs.com/Claire6649/p/5998231.html
Copyright © 2020-2023  润新知