日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

android开发 RecyclerView 瀑布列表布局StaggeredGridLayoutManager

發布時間:2023/12/13 综合教程 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 android开发 RecyclerView 瀑布列表布局StaggeredGridLayoutManager 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.寫一個內容的自定義小布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="10dp">
    <ImageView
        android:id="@+id/waterfall_Image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ace"/>
    <TextView
        android:id="@+id/waterfall_Name_TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="這里顯示名稱"
        android:textSize="15sp"
        android:textColor="@color/colorBlack"
        android:layout_gravity="center_horizontal"/>
    <TextView
        android:id="@+id/waterfall_contents_TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="這里顯示內容"
        android:textSize="10sp"
        android:textColor="@color/colorblue"/>

</LinearLayout>

布局預覽:

寫一個內容適配器class:

package com.example.lenovo.myrecyclerview.RecyclerViewToolkit;

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.lenovo.myrecyclerview.R;

import java.util.List;

/**
 * Created by lenovo on 2018/5/2.
 */

public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> {
    private List<ListData> mDataList;
    static class ViewHolder extends RecyclerView.ViewHolder{
        ImageView imageAvatar;
        TextView nameText;
        TextView contentsText;
        public ViewHolder(View itemView) {
            super(itemView);
            //注意這里可能需要import com.example.lenovo.myrecyclerview.R; 才能使用R.id
            imageAvatar = (ImageView)itemView.findViewById(R.id.waterfall_Image);
            nameText =(TextView) itemView.findViewById(R.id.waterfall_Name_TextView);
            contentsText = (TextView)itemView.findViewById(R.id.waterfall_contents_TextView);
        }
    }
    public  ListAdapter(List<ListData> listDatas){
        mDataList = listDatas;
    }


    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.waterfall_list_view,
                parent,false);
        ViewHolder holder = new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        ListData listData = mDataList.get(position);
        holder.imageAvatar.setImageResource(listData.getImageView());
        holder.nameText.setText(listData.getNameText());
        holder.contentsText.setText(listData.getContentsText());
    }

    @Override
    public int getItemCount() {
        return mDataList.size();
    }
}

寫一個RecyclerView 瀑布列表布局活動class:

package com.example.lenovo.myrecyclerview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;

import com.example.lenovo.myrecyclerview.RecyclerViewToolkit.ListAdapter;
import com.example.lenovo.myrecyclerview.RecyclerViewToolkit.ListData;

import java.util.ArrayList;
import java.util.List;

public class RecyclerViewActivity extends AppCompatActivity {
    private List<ListData> listDatas = new ArrayList<>(); //創建數據list

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recycler_view);
        addingData(); //導入數據
        RecyclerView recyclerView = (RecyclerView)findViewById(R.id.RecyclerView);
        //在此處修改布局排列方向
        StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(3,
                StaggeredGridLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(staggeredGridLayoutManager);
        ListAdapter listAdapter = new ListAdapter(listDatas); //創建適配器,并且導入數據list
        recyclerView.setAdapter(listAdapter);//布局導入適配器
    }
    //添加數據
    public void addingData(){
        ListData ace = new ListData(R.drawable.ace,"ace", "波特卡斯·D·艾斯:" +
                "燒燒果實的前任能力者,綽號“火拳”,實力強大。");
        listDatas.add(ace);
//以下省略.....

    }

}

實現效果圖:

總結

以上是生活随笔為你收集整理的android开发 RecyclerView 瀑布列表布局StaggeredGridLayoutManager的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。