public class MaterialStyleActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
private enum Item {
打开背景(R.string.item_style_bezier_on),
关闭背景(R.string.item_style_bezier_off),
内容不偏移(R.string.item_style_content_translation_off),
内容跟随偏移(R.string.item_style_content_translation_on),
橙色主题(R.string.item_style_theme_orange_abstract),
红色主题(R.string.item_style_theme_red_abstract),
绿色主题(R.string.item_style_theme_green_abstract),
蓝色主题(R.string.item_style_theme_blue_abstract),
;
public int nameId;
Item(@StringRes int nameId) {
this.nameId = nameId;
}
}
private Toolbar mToolbar;
private RefreshLayout mRefreshLayout;
private MaterialHeader mMaterialHeader;
private static boolean isFirstEnter = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_style_material);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
mRefreshLayout = (RefreshLayout) findViewById(R.id.refreshLayout);
if (isFirstEnter) {
isFirstEnter = false;
mRefreshLayout.autoRefresh();//第一次进入触发自动刷新,演示效果
}
mMaterialHeader = (MaterialHeader)mRefreshLayout.getRefreshHeader();
View view = findViewById(R.id.recyclerView);
if (view instanceof RecyclerView) {
RecyclerView recyclerView = (RecyclerView) view;
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addItemDecoration(new DividerItemDecoration(this, VERTICAL));
recyclerView.setItemAnimator(new DefaultItemAnimator());
List- items = new ArrayList<>();
items.addAll(Arrays.asList(Item.values()));
items.addAll(Arrays.asList(Item.values()));
recyclerView.setAdapter(new BaseRecyclerAdapter
- (items, simple_list_item_2,this) {
@Override
protected void onBindViewHolder(SmartViewHolder holder, Item model, int position) {
holder.text(android.R.id.text1, model.name());
holder.text(android.R.id.text2, model.nameId);
holder.textColorId(android.R.id.text2, R.color.colorTextAssistant);
}
});
}
}
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
switch (Item.values()[position % Item.values().length]) {
case 内容不偏移:
mRefreshLayout.setEnableHeaderTranslationContent(false);
break;
case 内容跟随偏移:
mRefreshLayout.setEnableHeaderTranslationContent(true);
break;
case 打开背景:
mMaterialHeader.setShowBezierWave(true);
break;
case 关闭背景:
mMaterialHeader.setShowBezierWave(false);
break;
case 蓝色主题:
setThemeColor(R.color.colorPrimary, R.color.colorPrimaryDark);
break;
case 绿色主题:
setThemeColor(android.R.color.holo_green_light, android.R.color.holo_green_dark);
break;
case 红色主题:
setThemeColor(android.R.color.holo_red_light, android.R.color.holo_red_dark);
break;
case 橙色主题:
setThemeColor(android.R.color.holo_orange_light, android.R.color.holo_orange_dark);
break;
}
mRefreshLayout.autoRefresh();
}
private void setThemeColor(int colorPrimary, int colorPrimaryDark) {
mToolbar.setBackgroundResource(colorPrimary);
mRefreshLayout.setPrimaryColorsId(colorPrimary, android.R.color.white);
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setStatusBarColor(ContextCompat.getColor(this, colorPrimaryDark));
}
}
}
public class PhoenixStyleActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
private enum Item {
折叠(R.string.item_style_app_bar_collapse),
展开(R.string.item_style_app_bar_expand),
橙色主题(R.string.item_style_theme_orange_abstract),
红色主题(R.string.item_style_theme_red_abstract),
绿色主题(R.string.item_style_theme_green_abstract),
蓝色主题(R.string.item_style_theme_blue_abstract),
;
public int nameId;
Item(@StringRes int nameId) {
this.nameId = nameId;
}
}
private Toolbar mToolbar;
private RecyclerView mRecyclerView;
private AppBarLayout mAppBarLayout;
private RefreshLayout mRefreshLayout;
private FloatingActionButton mActionButton;
private CollapsingToolbarLayout mToolbarLayout;
private static boolean isFirstEnter = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_style_phoenix);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
mRefreshLayout = (RefreshLayout) findViewById(R.id.refreshLayout);
if (isFirstEnter) {
isFirstEnter = false;
mRefreshLayout.autoRefresh();//第一次进入触发自动刷新,演示效果
}
mAppBarLayout = (AppBarLayout) findViewById(R.id.appbar);
mToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.toolbarLayout);
View view = findViewById(R.id.recyclerView);
if (view instanceof RecyclerView) {
RecyclerView recyclerView = (RecyclerView) view;
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addItemDecoration(new DividerItemDecoration(this, VERTICAL));
recyclerView.setItemAnimator(new DefaultItemAnimator());
List- items = new ArrayList<>();
items.addAll(Arrays.asList(Item.values()));
items.addAll(Arrays.asList(Item.values()));
recyclerView.setAdapter(new BaseRecyclerAdapter
- (items, simple_list_item_2,this) {
@Override
protected void onBindViewHolder(SmartViewHolder holder, Item model, int position) {
holder.text(android.R.id.text1, model.name());
holder.text(android.R.id.text2, model.nameId);
holder.textColorId(android.R.id.text2, R.color.colorTextAssistant);
}
});
mRecyclerView = recyclerView;
}
/*
* 监听 AppBarLayout 的关闭和开启 ActionButton 设置关闭隐藏动画
*/
mActionButton = (FloatingActionButton) findViewById(R.id.fab);
mAppBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
boolean misAppbarExpand = true;
View fab = findViewById(R.id.fab);
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
int scrollRange = appBarLayout.getTotalScrollRange();
float fraction = 1f * (scrollRange + verticalOffset) / scrollRange;
if (fraction < 0.1 && misAppbarExpand) {
misAppbarExpand = false;
fab.animate().scaleX(0).scaleY(0);
}
if (fraction > 0.8 && !misAppbarExpand) {
misAppbarExpand = true;
fab.animate().scaleX(1).scaleY(1);
}
}
});
}
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
switch (Item.values()[position % Item.values().length]) {
case 折叠:
mAppBarLayout.setExpanded(false, true);
mAppBarLayout.setEnabled(false);
mRecyclerView.setNestedScrollingEnabled(false);
break;
case 展开:
mAppBarLayout.setEnabled(true);
mAppBarLayout.setExpanded(true, true);
mRecyclerView.setNestedScrollingEnabled(true);
break;
case 蓝色主题:
setThemeColor(R.color.colorPrimary, R.color.colorPrimaryDark);
break;
case 绿色主题:
setThemeColor(android.R.color.holo_green_light, android.R.color.holo_green_dark);
break;
case 红色主题:
setThemeColor(android.R.color.holo_red_light, android.R.color.holo_red_dark);
break;
case 橙色主题:
setThemeColor(android.R.color.holo_orange_light, android.R.color.holo_orange_dark);
break;
}
mRefreshLayout.autoRefresh();
}
private void setThemeColor(int colorPrimary, int colorPrimaryDark) {
mToolbar.setBackgroundResource(colorPrimary);
mAppBarLayout.setBackgroundResource(colorPrimary);
mToolbarLayout.setContentScrimResource(colorPrimary);
mRefreshLayout.setPrimaryColorsId(colorPrimary, android.R.color.white);
mActionButton.setBackgroundColor(ContextCompat.getColor(this, colorPrimaryDark));
mActionButton.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(this, colorPrimaryDark)));
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setStatusBarColor(ContextCompat.getColor(this, colorPrimaryDark));
}
}
}
public class StoreHouseStyleActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
private enum Item {
显示商标(R.string.item_style_store_house_brand),
显示图标(R.string.item_style_store_house_icon),
显示中文(R.string.item_style_store_house_chinese),
显示英文(R.string.item_style_store_house_english),
橙色主题(R.string.item_style_theme_orange_abstract),
红色主题(R.string.item_style_theme_red_abstract),
绿色主题(R.string.item_style_theme_green_abstract),
蓝色主题(R.string.item_style_theme_blue_abstract),
;
public int nameId;
Item(@StringRes int nameId) {
this.nameId = nameId;
}
}
private Toolbar mToolbar;
private RefreshLayout mRefreshLayout;
private static boolean isFirstEnter = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_style_storehouse);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
mRefreshLayout = (RefreshLayout) findViewById(R.id.refreshLayout);
if (isFirstEnter) {
isFirstEnter = false;
mRefreshLayout.autoRefresh();//第一次进入触发自动刷新,演示效果
}
View view = findViewById(R.id.recyclerView);
if (view instanceof RecyclerView) {
RecyclerView recyclerView = (RecyclerView) view;
recyclerView.addItemDecoration(new DividerItemDecoration(this, VERTICAL));
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setItemAnimator(new DefaultItemAnimator());
List- items = new ArrayList<>();
items.addAll(Arrays.asList(Item.values()));
items.addAll(Arrays.asList(Item.values()));
recyclerView.setAdapter(new BaseRecyclerAdapter
- (items, simple_list_item_2,this) {
@Override
protected void onBindViewHolder(SmartViewHolder holder, Item model, int position) {
holder.text(android.R.id.text1, model.name());
holder.text(android.R.id.text2, model.nameId);
holder.textColorId(android.R.id.text2, R.color.colorTextAssistant);
}
});
}
}
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
switch (Item.values()[position % Item.values().length]) {
case 显示中文: {
RefreshHeader refreshHeader = mRefreshLayout.getRefreshHeader();
if (refreshHeader instanceof StoreHouseHeader) {
((StoreHouseHeader) refreshHeader).initWithPointList(getPointList());
}
break;
}
case 显示英文: {
RefreshHeader refreshHeader = mRefreshLayout.getRefreshHeader();
if (refreshHeader instanceof StoreHouseHeader) {
((StoreHouseHeader) refreshHeader).initWithString("SmartRefresh");
}
break;
}
case 显示图标: {
RefreshHeader refreshHeader = mRefreshLayout.getRefreshHeader();
if (refreshHeader instanceof StoreHouseHeader) {
((StoreHouseHeader) refreshHeader).initWithStringArray(R.array.storehouse);
}
break;
}
case 显示商标: {
RefreshHeader refreshHeader = mRefreshLayout.getRefreshHeader();
if (refreshHeader instanceof StoreHouseHeader) {
((StoreHouseHeader) refreshHeader).initWithStringArray(R.array.akta);
}
break;
}
case 蓝色主题:
setThemeColor(R.color.colorPrimary, R.color.colorPrimaryDark);
break;
case 绿色主题:
setThemeColor(android.R.color.holo_green_light, android.R.color.holo_green_dark);
break;
case 红色主题:
setThemeColor(android.R.color.holo_red_light, android.R.color.holo_red_dark);
break;
case 橙色主题:
setThemeColor(android.R.color.holo_orange_light, android.R.color.holo_orange_dark);
break;
}
mRefreshLayout.autoRefresh();
}
private void setThemeColor(int colorPrimary, int colorPrimaryDark) {
mToolbar.setBackgroundResource(colorPrimary);
mRefreshLayout.setPrimaryColorsId(colorPrimary, android.R.color.white);
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setStatusBarColor(ContextCompat.getColor(this, colorPrimaryDark));
}
}
private List
getPointList() {
// this point is taken from https://github.com/cloay/CRefreshLayout
List startPoints = new ArrayList<>();
startPoints.add(new Point(240, 80));
startPoints.add(new Point(270, 80));
startPoints.add(new Point(265, 103));
startPoints.add(new Point(255, 65));
startPoints.add(new Point(275, 80));
startPoints.add(new Point(275, 80));
startPoints.add(new Point(302, 80));
startPoints.add(new Point(275, 107));
startPoints.add(new Point(320, 70));
startPoints.add(new Point(313, 80));
startPoints.add(new Point(330, 63));
startPoints.add(new Point(315, 87));
startPoints.add(new Point(330, 80));
startPoints.add(new Point(315, 100));
startPoints.add(new Point(330, 90));
startPoints.add(new Point(315, 110));
startPoints.add(new Point(345, 65));
startPoints.add(new Point(357, 67));
startPoints.add(new Point(363, 103));
startPoints.add(new Point(375, 80));
startPoints.add(new Point(375, 80));
startPoints.add(new Point(425, 80));
startPoints.add(new Point(380, 95));
startPoints.add(new Point(400, 63));
List endPoints = new ArrayList<>();
endPoints.add(new Point(270, 80));
endPoints.add(new Point(270, 110));
endPoints.add(new Point(270, 110));
endPoints.add(new Point(250, 110));
endPoints.add(new Point(275, 107));
endPoints.add(new Point(302, 80));
endPoints.add(new Point(302, 107));
endPoints.add(new Point(302, 107));
endPoints.add(new Point(340, 70));
endPoints.add(new Point(360, 80));
endPoints.add(new Point(330, 80));
endPoints.add(new Point(340, 87));
endPoints.add(new Point(315, 100));
endPoints.add(new Point(345, 98));
endPoints.add(new Point(330, 120));
endPoints.add(new Point(345, 108));
endPoints.add(new Point(360, 120));
endPoints.add(new Point(363, 75));
endPoints.add(new Point(345, 117));
endPoints.add(new Point(380, 95));
endPoints.add(new Point(425, 80));
endPoints.add(new Point(420, 95));
endPoints.add(new Point(420, 95));
endPoints.add(new Point(400, 120));
List list = new ArrayList<>();
int offsetX = Integer.MAX_VALUE;
int offsetY = Integer.MAX_VALUE;
for (int i = 0; i < startPoints.size(); i++) {
offsetX = Math.min(startPoints.get(i).x, offsetX);
offsetY = Math.min(startPoints.get(i).y, offsetY);
}
for (int i = 0; i < endPoints.size(); i++) {
float[] point = new float[4];
point[0] = startPoints.get(i).x - offsetX;
point[1] = startPoints.get(i).y - offsetY;
point[2] = endPoints.get(i).x - offsetX;
point[3] = endPoints.get(i).y - offsetY;
list.add(point);
}
return list;
}
}
public class TaurusStyleActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
private enum Item {
折叠(R.string.item_style_app_bar_collapse),
展开(R.string.item_style_app_bar_expand),
橙色主题(R.string.item_style_theme_orange_abstract),
红色主题(R.string.item_style_theme_red_abstract),
绿色主题(R.string.item_style_theme_green_abstract),
蓝色主题(R.string.item_style_theme_blue_abstract),
;
public int nameId;
Item(@StringRes int nameId) {
this.nameId = nameId;
}
}
private Toolbar mToolbar;
private RecyclerView mRecyclerView;
private AppBarLayout mAppBarLayout;
private RefreshLayout mRefreshLayout;
private FloatingActionButton mActionButton;
private CollapsingToolbarLayout mToolbarLayout;
private static boolean isFirstEnter = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_style_taurus);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
mRefreshLayout = (RefreshLayout) findViewById(R.id.refreshLayout);
if (isFirstEnter) {
isFirstEnter = false;
mRefreshLayout.autoRefresh();//第一次进入触发自动刷新,演示效果
}
mAppBarLayout = (AppBarLayout) findViewById(R.id.appbar);
mToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.toolbarLayout);
View view = findViewById(R.id.recyclerView);
if (view instanceof RecyclerView) {
RecyclerView recyclerView = (RecyclerView) view;
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addItemDecoration(new DividerItemDecoration(this, VERTICAL));
recyclerView.setItemAnimator(new DefaultItemAnimator());
List- items = new ArrayList<>();
items.addAll(Arrays.asList(Item.values()));
items.addAll(Arrays.asList(Item.values()));
recyclerView.setAdapter(new BaseRecyclerAdapter
- (items, simple_list_item_2,this) {
@Override
protected void onBindViewHolder(SmartViewHolder holder, Item model, int position) {
holder.text(android.R.id.text1, model.name());
holder.text(android.R.id.text2, model.nameId);
holder.textColorId(android.R.id.text2, R.color.colorTextAssistant);
}
});
mRecyclerView = recyclerView;
}
/*
* 监听 AppBarLayout 的关闭和开启 给 ActionButton 设置关闭隐藏动画
*/
mActionButton = (FloatingActionButton) findViewById(R.id.fab);
mAppBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
boolean misAppbarExpand = true;
View fab = findViewById(R.id.fab);
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
int scrollRange = appBarLayout.getTotalScrollRange();
float fraction = 1f * (scrollRange + verticalOffset) / scrollRange;
if (fraction < 0.1 && misAppbarExpand) {
misAppbarExpand = false;
fab.animate().scaleX(0).scaleY(0);
}
if (fraction > 0.8 && !misAppbarExpand) {
misAppbarExpand = true;
fab.animate().scaleX(1).scaleY(1);
}
}
});
}
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
switch (Item.values()[position % Item.values().length]) {
case 折叠:
mAppBarLayout.setExpanded(false, true);
mAppBarLayout.setEnabled(false);
mRecyclerView.setNestedScrollingEnabled(false);
break;
case 展开:
mAppBarLayout.setEnabled(true);
mAppBarLayout.setExpanded(true, true);
mRecyclerView.setNestedScrollingEnabled(true);
break;
case 蓝色主题:
setThemeColor(R.color.colorPrimary, R.color.colorPrimaryDark);
break;
case 绿色主题:
setThemeColor(android.R.color.holo_green_light, android.R.color.holo_green_dark);
break;
case 红色主题:
setThemeColor(android.R.color.holo_red_light, android.R.color.holo_red_dark);
break;
case 橙色主题:
setThemeColor(android.R.color.holo_orange_light, android.R.color.holo_orange_dark);
break;
}
mRefreshLayout.autoRefresh();
}
private void setThemeColor(int colorPrimary, int colorPrimaryDark) {
mToolbar.setBackgroundResource(colorPrimary);
mAppBarLayout.setBackgroundResource(colorPrimary);
mToolbarLayout.setContentScrimResource(colorPrimary);
mRefreshLayout.setPrimaryColorsId(colorPrimary, android.R.color.white);
mActionButton.setBackgroundColor(ContextCompat.getColor(this, colorPrimaryDark));
mActionButton.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(this, colorPrimaryDark)));
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setStatusBarColor(ContextCompat.getColor(this, colorPrimaryDark));
}
}
}
public class WaterDropStyleActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
private enum Item {
内容不偏移(R.string.item_style_content_translation_off),
内容跟随偏移(R.string.item_style_content_translation_on),
默认主题(R.string.item_style_theme_default_abstract),
橙色主题(R.string.item_style_theme_orange_abstract),
红色主题(R.string.item_style_theme_red_abstract),
绿色主题(R.string.item_style_theme_green_abstract),
蓝色主题(R.string.item_style_theme_blue_abstract),
;
public int nameId;
Item(@StringRes int nameId) {
this.nameId = nameId;
}
}
private Toolbar mToolbar;
private RefreshLayout mRefreshLayout;
private static boolean isFirstEnter = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_style_water_drop);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
mRefreshLayout = (RefreshLayout) findViewById(R.id.refreshLayout);
if (isFirstEnter) {
isFirstEnter = false;
mRefreshLayout.autoRefresh();//第一次进入触发自动刷新,演示效果
}
View view = findViewById(R.id.recyclerView);
if (view instanceof RecyclerView) {
RecyclerView recyclerView = (RecyclerView) view;
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addItemDecoration(new DividerItemDecoration(this, VERTICAL));
recyclerView.setItemAnimator(new DefaultItemAnimator());
List- items = new ArrayList<>();
items.addAll(Arrays.asList(Item.values()));
items.addAll(Arrays.asList(Item.values()));
recyclerView.setAdapter(new BaseRecyclerAdapter
- (items, simple_list_item_2,this) {
@Override
protected void onBindViewHolder(SmartViewHolder holder, Item model, int position) {
holder.text(android.R.id.text1, model.name());
holder.text(android.R.id.text2, model.nameId);
holder.textColorId(android.R.id.text2, R.color.colorTextAssistant);
}
});
}
}
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
switch (Item.values()[position % Item.values().length]) {
case 内容不偏移:
mRefreshLayout.setEnableHeaderTranslationContent(false);
break;
case 内容跟随偏移:
mRefreshLayout.setEnableHeaderTranslationContent(true);
break;
case 默认主题:
setThemeColor(R.color.colorPrimary, R.color.colorPrimaryDark);
mRefreshLayout.setPrimaryColorsId(android.R.color.darker_gray);
break;
case 蓝色主题:
setThemeColor(R.color.colorPrimary, R.color.colorPrimaryDark);
break;
case 绿色主题:
setThemeColor(android.R.color.holo_green_light, android.R.color.holo_green_dark);
break;
case 红色主题:
setThemeColor(android.R.color.holo_red_light, android.R.color.holo_red_dark);
break;
case 橙色主题:
setThemeColor(android.R.color.holo_orange_light, android.R.color.holo_orange_dark);
break;
}
mRefreshLayout.autoRefresh();
}
private void setThemeColor(int colorPrimary, int colorPrimaryDark) {
mToolbar.setBackgroundResource(colorPrimary);
mRefreshLayout.setPrimaryColorsId(colorPrimary, android.R.color.white);
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setStatusBarColor(ContextCompat.getColor(this, colorPrimaryDark));
}
}
}
public class WaveSwipeStyleActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
private enum Item {
内容不偏移(R.string.item_style_content_translation_off),
内容跟随偏移(R.string.item_style_content_translation_on),
橙色主题(R.string.item_style_theme_orange_abstract),
红色主题(R.string.item_style_theme_red_abstract),
绿色主题(R.string.item_style_theme_green_abstract),
蓝色主题(R.string.item_style_theme_blue_abstract),
;
public int nameId;
Item(@StringRes int nameId) {
this.nameId = nameId;
}
}
private Toolbar mToolbar;
private RefreshLayout mRefreshLayout;
private static boolean isFirstEnter = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_style_wave_swipe);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
mRefreshLayout = (RefreshLayout) findViewById(R.id.refreshLayout);
if (isFirstEnter) {
isFirstEnter = false;
mRefreshLayout.autoRefresh();//第一次进入触发自动刷新,演示效果
}
View view = findViewById(R.id.recyclerView);
if (view instanceof RecyclerView) {
RecyclerView recyclerView = (RecyclerView) view;
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addItemDecoration(new DividerItemDecoration(this, VERTICAL));
recyclerView.setItemAnimator(new DefaultItemAnimator());
List- items = new ArrayList<>();
items.addAll(Arrays.asList(Item.values()));
items.addAll(Arrays.asList(Item.values()));
items.addAll(Arrays.asList(Item.values()));
recyclerView.setAdapter(new BaseRecyclerAdapter
- (items, simple_list_item_2,this) {
@Override
protected void onBindViewHolder(SmartViewHolder holder, Item model, int position) {
holder.text(android.R.id.text1, model.name());
holder.text(android.R.id.text2, model.nameId);
holder.textColorId(android.R.id.text2, R.color.colorTextAssistant);
}
});
}
}
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
switch (Item.values()[position % Item.values().length]) {
case 内容不偏移:
mRefreshLayout.setEnableHeaderTranslationContent(false);
break;
case 内容跟随偏移:
mRefreshLayout.setEnableHeaderTranslationContent(true);
break;
case 蓝色主题:
setThemeColor(R.color.colorPrimary, R.color.colorPrimaryDark);
break;
case 绿色主题:
setThemeColor(android.R.color.holo_green_light, android.R.color.holo_green_dark);
break;
case 红色主题:
setThemeColor(android.R.color.holo_red_light, android.R.color.holo_red_dark);
break;
case 橙色主题:
setThemeColor(android.R.color.holo_orange_light, android.R.color.holo_orange_dark);
break;
}
mRefreshLayout.autoRefresh();
}
private void setThemeColor(int colorPrimary, int colorPrimaryDark) {
mToolbar.setBackgroundResource(colorPrimary);
mRefreshLayout.setPrimaryColorsId(colorPrimary, android.R.color.white);
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setStatusBarColor(ContextCompat.getColor(this, colorPrimaryDark));
}
}
}
Android智能下拉刷新、上拉加载框架(一)——SmartRefreshLayout
Android智能下拉刷新、上拉加载框架(三)——SmartRefreshLayout
源码地址