Android开发经验谈Android开发

BRVAH_基本使用

2019-04-13  本文已影响0人  死鬼土匪
BRVAH是GitHub上的一个RecyclerView 框架,非常强大 。
代码可以运行,GitHub仓库和依赖要加上去
其他的看代码注释

activity_main

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<android.support.v7.widget.RecyclerView
    android:id="@+id/id_recyclerview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="#000000"
    android:dividerHeight="10dp" />

</RelativeLayout>

item1

  <?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="50dp"
      android:orientation="horizontal">

  <TextView
      android:id="@+id/id_num"
      android:layout_width="0dp"
      android:layout_height="match_parent"
      android:layout_weight="1"
      android:background="#44ff0000"
      android:gravity="center"
      android:text="1" />

</LinearLayout>

MainActivity

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
import android.view.View;
import android.widget.Toast;
import com.chad.library.adapter.base.BaseQuickAdapter;

public class MainActivity extends AppCompatActivity {

private RecyclerView mRecyclerView;
private List<String> mDatas;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //模拟数据
    initData();
    //获取控件
    mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);
    //方向
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    //item布局、列表数据源
    HomeAdapter mAdapter = new HomeAdapter(R.layout.item1, mDatas);
    //适配器
    mRecyclerView.setAdapter(mAdapter);
    //动画
    mAdapter.openLoadAnimation(BaseQuickAdapter.ALPHAIN);
    //单击事件
    mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
        @Override
        public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
            Toast.makeText(MainActivity.this, "单击" + mDatas.get(position), Toast.LENGTH_SHORT).show();
        }
    });
    //长按事件
    mAdapter.setOnItemChildLongClickListener(new BaseQuickAdapter.OnItemChildLongClickListener() {
        @Override
        public boolean onItemChildLongClick(BaseQuickAdapter adapter, View view, int position) {
            Toast.makeText(MainActivity.this, "长按" + mDatas.get(position), Toast.LENGTH_SHORT).show();
            return false;
        }
    });

  }

protected void initData() {
    mDatas = new ArrayList<>();
    for (int i = 'A'; i < 'Z'; i++) {
        mDatas.add("" + (char) i);
        }
    }
}

HomeAdapter

import android.graphics.Color;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import java.util.List;

class HomeAdapter extends BaseQuickAdapter<String, BaseViewHolder> {

HomeAdapter(int layoutResId, List<String> data) {
    super(layoutResId, data);
}

@Override
protected void convert(BaseViewHolder helper, String data) {
    helper.setText(R.id.id_num, data);
    //添加监听事件
    helper.addOnClickListener(R.id.id_num);
    //getLayoutPosition() 获取当前item的position
    if (helper.getAdapterPosition() % 2 == 0) {
        helper.setTextColor(R.id.id_num, Color.RED);
    } else {
        helper.setTextColor(R.id.id_num, Color.YELLOW);
    }
  }
}

maven 仓库(Project : test)

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

添加依赖(Module:test)

dependencies {
    ...
    implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30' 
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    ...
}
上一篇 下一篇

猜你喜欢

热点阅读