android 瀑布流
生活随笔
收集整理的這篇文章主要介紹了
android 瀑布流
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最終效果圖
?
?
?
1.item_demo5.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:paddingBottom="5dp"android:paddingRight="5dp"><ImageViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:scaleType="fitXY"android:id="@+id/item_demo5_image"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/item_demo5_tv"android:layout_margin="5dp"android:background="#ff496b"android:text="12344"/></LinearLayout>?Demo5Adapter
public class Demo5Adapter extends RecyclerView.Adapter<Demo5Adapter.ViewHolder> {/*** 展示數(shù)據(jù)*/private ArrayList<String> mData;public Demo5Adapter(ArrayList<String> data) {this.mData = data;}public void updateData(ArrayList<String> data) {this.mData = data;notifyDataSetChanged();}@Overridepublic int getItemViewType(int position) {// 瀑布流樣式外部設(shè)置spanCount為2,在這列設(shè)置兩個不同的item type,以區(qū)分不同的布局return position % 2;}@Overridepublic Demo5Adapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {parent = parent;// 實(shí)例化展示的viewView v; // if(viewType == 1) {v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_demo5, parent, false); // } // else { // v = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_rv_staggered_item_two, parent, false); // }// 實(shí)例化viewholderViewHolder viewHolder = new ViewHolder(v);return viewHolder;}@Overridepublic void onBindViewHolder(Demo5Adapter.ViewHolder holder, int position) { // 綁定數(shù)據(jù)holder.mTv.setText(mData.get(position));int type = position % 2;if(type == 0){holder.imageView.setBackgroundResource(R.drawable.a);}else {holder.imageView.setBackgroundResource(R.drawable.ic_launcher);}}@Overridepublic int getItemCount() {return this.mData.size();}public static class ViewHolder extends RecyclerView.ViewHolder {TextView mTv;ImageView imageView;public ViewHolder(View itemView) {super(itemView);mTv = (TextView) itemView.findViewById(R.id.item_demo5_tv);imageView = (ImageView)itemView.findViewById(R.id.item_demo5_image);}} }?activity_demo5.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.example.mac.mainapplication.Activity.Demo5Activity"><android.support.v7.widget.RecyclerViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:scrollbars="vertical"android:paddingLeft="5dp"android:paddingTop="5dp"android:fadeScrollbars="true"android:id="@+id/demo5_recycler_view"></android.support.v7.widget.RecyclerView></LinearLayout>?主界面代碼
public class Demo5Activity extends AppCompatActivity {private StaggeredGridLayoutManager mLayoutManager;private RecyclerView mRecyclerView;private ArrayList<String> data = new ArrayList<>();private Demo5Adapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_demo5);mLayoutManager = new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL);mRecyclerView = (RecyclerView)findViewById(R.id.demo5_recycler_view);mRecyclerView.setLayoutManager(mLayoutManager);adapter = new Demo5Adapter(getData());mRecyclerView.setAdapter(adapter);}private ArrayList<String> getData() {final Random random=new Random();;String []strArr = {"差不多完美的解決了間隔線的問題,有細(xì)心的同學(xué)可能發(fā)現(xiàn),在RecyclerView滑動的時候上面一直有一條灰色的間隔線,這個可以通過取消xml布局文件中RecyclerView的paddingTop屬性去掉頂部灰色的間隔線。","總結(jié)","本篇文章主要介紹網(wǎng)格樣式和瀑布流樣式的RecyclerView,列表樣式、網(wǎng)格樣式和瀑布流樣式在某種程度上是可以轉(zhuǎn)換的。","網(wǎng)格樣式的布局管理器的spanCount設(shè)置為1,就是列表樣式","目前為止關(guān)于RecyclerView的基本使用的介紹可以告一段落了,但其實(shí)關(guān)于RecyclerView深入使用可不止著一些,比如說單個Item橫滑,拖動Item之間轉(zhuǎn)換位置等等,官方都有提供,當(dāng)然這些使用會在后面依次介紹。","我是好人","就是水平方向的列表","如果覺得我的文章對您有用,請隨意贊賞。您的支持將鼓勵我繼續(xù)創(chuàng)作!","豎直方向","Item是等寬,水平方向,那就是水平方向的網(wǎng)絡(luò)樣式","1","飛哥陪我過;歌撇根基穩(wěn)固拼q"};for(int i = 0; i < 100; i++) {data.add(strArr[random.nextInt(strArr.length)]);}return data;}}?
轉(zhuǎn)載于:https://www.cnblogs.com/hualuoshuijia/p/7059534.html
總結(jié)
以上是生活随笔為你收集整理的android 瀑布流的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ansible编译httpd playb
- 下一篇: maven常用插件功能