package com.zjw.myswiperefreshlayout; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.NavigationView; import android.support.design.widget.Snackbar; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Toast; import java.util.ArrayList; import java.util.List; import java.util.Random; import butterknife.BindView; import butterknife.ButterKnife; //12.6 p440 下拉刷新 /* SwipeRefreshLayout: support-v4包 要实现下拉刷新的控件扔进去 改主布局(之前全部布局见CardView的使用): <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/srl" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="5dp" > </android.support.v7.widget.RecyclerView> </android.support.v4.widget.SwipeRefreshLayout> 改主类 */ public class UseOfSwiperefreshlayout extends AppCompatActivity { @BindView(R.id.tb) Toolbar mTb; @BindView(R.id.navigation) NavigationView mNavigation; @BindView(R.id.dl) DrawerLayout mDl; @BindView(R.id.acb) FloatingActionButton mAcb; @BindView(R.id.recycler_view) RecyclerView mRecyclerView; @BindView(R.id.srl) SwipeRefreshLayout mSrl; //准备数据 private String[] arr = {"apple", "banana", "orange", "watermelon", "pear", "grape", "pineapple", "strawberry", "cherry" , "mango", "apple", "banana", "orange", "watermelon", "pear", "grape", "pineapple", "strawberry", "cherry" , "mango"}; private int[] arrId = {R.drawable.apple_pic, R.drawable.banana_pic, R.drawable.orange_pic, R.drawable.watermelon_pic, R.drawable.pear_pic, R.drawable.grape_pic, R.drawable.pineapple_pic, R.drawable.strawberry_pic, R.drawable.cherry_pic, R.drawable.mangp_pic, R.drawable.apple_pic, R.drawable.banana_pic, R.drawable.orange_pic, R.drawable.watermelon_pic, R.drawable.pear_pic, R.drawable.grape_pic, R.drawable.pineapple_pic, R.drawable.strawberry_pic, R.drawable.cherry_pic, R.drawable.mangp_pic}; private List<Fruit> fruitList = new ArrayList<Fruit>(); private FruitAdapter mFruitAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_use_of_swiperefreshlayout); ButterKnife.bind(this); setSupportActionBar(mTb);//设置标题栏 ActionBar actionBar = getSupportActionBar();//获取标题栏 if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true);//显示HomeAsUp按钮 actionBar.setHomeAsUpIndicator(R.mipmap.ic_drawer);//设置HomeAsUp按钮图标 } //设置DrawerLayout的菜单布局Navigation mNavigation.setCheckedItem(R.id.holder);//设置默认选中项 mNavigation.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { mDl.closeDrawers(); return true; } }); //给FloatingActionButton设置点击事件 mAcb.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Snackbar.make(v, "you clicked floatingActionBar", Snackbar.LENGTH_SHORT) .setAction("showtoast", new View.OnClickListener() { @Override public void onClick(View v) { showToast("you clicked ..."); } }) .show(); } }); //初始化水果数据 initFruitData(); //给recyclerView设置布局样式和适配器 GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 2); mRecyclerView.setLayoutManager(gridLayoutManager); mFruitAdapter = new FruitAdapter(fruitList); mRecyclerView.setAdapter(mFruitAdapter); //SwipeRefreshLayout设置 mSrl.setColorSchemeResources(R.color.colorPrimary);//设置下拉刷新进度条颜色 //下拉刷新监听 mSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { refreshFruits();//刷新水果 } }); } //toolbar的menu @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.toolbar_menu, menu); return true; } //toolbar上各个按钮点击事件 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.up: showToast("you clicked up"); break; case R.id.delete: showToast("you clicked delete"); break; case R.id.add: showToast("you clicked add"); break; case android.R.id.home: mDl.openDrawer(GravityCompat.START); break; default: break; } return true; } //弹吐司 private Toast mToast; public void showToast(String msg) { if (mToast == null) { mToast = Toast.makeText(this, "", Toast.LENGTH_SHORT); } mToast.setText(msg); mToast.show(); } //初始化水果数据 private void initFruitData() { fruitList.clear(); for (int i = 0; i < 50; i++) { Random random = new Random(); int index = random.nextInt(arr.length); Fruit fruit = new Fruit(arr[index], arrId[index]); fruitList.add(fruit); } } //刷新水果 private void refreshFruits() { new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); } runOnUiThread(new Runnable() { @Override public void run() { initFruitData(); mFruitAdapter.notifyDataSetChanged(); mSrl.setRefreshing(false);//刷新事件结束,隐藏刷新进度条 } }); } }).start(); } }
转载于:https://my.oschina.net/u/3620480/blog/1501253