goodsList;
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/bean/Person.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.bean;
2 |
3 |
4 | import com.lzx.demo.adapter.ExpandableItemAdapter;
5 |
6 |
7 | public class Person implements MultiItemEntity{
8 |
9 | public Person(String name, int age) {
10 | this.age = age;
11 | this.name = name;
12 | }
13 |
14 | public String name;
15 | public int age;
16 |
17 | @Override
18 | public int getItemType() {
19 | return ExpandableItemAdapter.TYPE_ENTITY;
20 | }
21 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/bean/PinnedHeaderEntity.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.bean;
2 |
3 |
4 | import com.lzx.demo.base.Entity;
5 |
6 | /**
7 | *
8 | * 大标签实体类,可以将自己想要填充的数据包装进去,同时附带这个数据对应的类型
9 | */
10 | public class PinnedHeaderEntity extends Entity {
11 |
12 | private T data;
13 | private String pinnedHeaderName;
14 |
15 | public PinnedHeaderEntity(T data, int type, String pinnedHeaderName) {
16 | this.data = data;
17 | super.type = type;
18 | this.pinnedHeaderName = pinnedHeaderName;
19 | }
20 |
21 | public void setData(T data) {
22 | this.data = data;
23 | }
24 |
25 |
26 | public void setPinnedHeaderName(String pinnedHeaderName) {
27 | this.pinnedHeaderName = pinnedHeaderName;
28 | }
29 |
30 | public T getData() {
31 | return data;
32 | }
33 |
34 | public String getPinnedHeaderName() {
35 | return pinnedHeaderName;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/bean/Product.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.bean;
2 |
3 | /**
4 | * Created by lizhixian on 2016/12/24.
5 | */
6 |
7 | public class Product{
8 | public String title;
9 | public int coverResId;
10 |
11 | public Product(String title, int coverResId) {
12 | this.title = title;
13 | this.coverResId = coverResId;
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/bean/ProductList.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016 drakeet. https://github.com/drakeet
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.lzx.demo.bean;
18 |
19 | import android.support.annotation.NonNull;
20 |
21 | import com.lzx.demo.type.TypeFactory;
22 |
23 | import java.util.List;
24 |
25 | public class ProductList implements Visitable {
26 |
27 | public List products;
28 |
29 | public ProductList(@NonNull List products) {this.products = products;}
30 |
31 | @Override
32 | public int type(TypeFactory typeFactory) {
33 | return typeFactory.type(this);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/bean/StockEntity.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.bean;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | * Created by Oubowu on 2016/7/27 12:59.
7 | */
8 | public class StockEntity {
9 |
10 | // 振幅榜
11 | public List amplitude_list;
12 |
13 | // 跌幅榜
14 | public List down_list;
15 |
16 | // 换手率
17 | public List change_list;
18 |
19 | // 涨幅榜
20 | public List increase_list;
21 |
22 | public static class StockInfo {
23 | public double rate;
24 | public String current_price;
25 | public String stock_code;
26 | public String stock_name;
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/bean/Visitable.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.bean;
2 |
3 |
4 | import com.lzx.demo.type.TypeFactory;
5 |
6 | public interface Visitable {
7 |
8 | int type(TypeFactory typeFactory);
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/fragment/BaseDecorationFragment.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.fragment;
2 |
3 | import android.os.Bundle;
4 | import android.support.annotation.Nullable;
5 | import android.support.v4.app.Fragment;
6 | import android.support.v7.widget.LinearLayoutManager;
7 | import android.support.v7.widget.RecyclerView;
8 | import android.view.LayoutInflater;
9 | import android.view.View;
10 | import android.view.ViewGroup;
11 |
12 | import com.github.jdsjlzx.recyclerview.LRecyclerView;
13 | import com.github.jdsjlzx.recyclerview.LRecyclerViewAdapter;
14 | import com.lzx.demo.ItemDecoration.DividerDecoration;
15 | import com.lzx.demo.R;
16 |
17 | public abstract class BaseDecorationFragment extends Fragment {
18 |
19 | private LRecyclerView mList;
20 | protected LRecyclerViewAdapter mLRecyclerViewAdapter = null;
21 | @Nullable
22 | @Override
23 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
24 | final View view = inflater.inflate(R.layout.fragment_recycler, container, false);
25 |
26 | mList = (LRecyclerView) view.findViewById(R.id.list);
27 | mList.setPullRefreshEnabled(false);
28 |
29 | return view;
30 | }
31 |
32 | @Override
33 | public void onActivityCreated(Bundle savedInstanceState) {
34 | super.onActivityCreated(savedInstanceState);
35 |
36 | final DividerDecoration divider = new DividerDecoration.Builder(this.getActivity())
37 | .setHeight(R.dimen.default_divider_height)
38 | .setPadding(R.dimen.default_divider_padding)
39 | .setColorResource(R.color.default_header_color)
40 | .build();
41 |
42 | mList.setHasFixedSize(true);
43 | mList.setLayoutManager(new LinearLayoutManager(this.getActivity()));
44 | mList.addItemDecoration(divider);
45 |
46 | setAdapterAndDecor(mList);
47 | }
48 |
49 | protected abstract void setAdapterAndDecor(RecyclerView list);
50 | }
51 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/fragment/InlineStickyHeaderFragment.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.fragment;
2 |
3 | import android.support.v7.widget.RecyclerView;
4 | import android.view.MenuItem;
5 |
6 | import com.github.jdsjlzx.recyclerview.LRecyclerViewAdapter;
7 | import com.lzx.demo.ItemDecoration.StickyHeaderDecoration;
8 | import com.lzx.demo.R;
9 | import com.lzx.demo.adapter.InlineStickyTestAdapter;
10 |
11 | public class InlineStickyHeaderFragment
12 | extends BaseDecorationFragment {
13 |
14 | private StickyHeaderDecoration decor;
15 |
16 | @Override
17 | protected void setAdapterAndDecor(RecyclerView list) {
18 | final InlineStickyTestAdapter adapter = new InlineStickyTestAdapter(this.getActivity());
19 | decor = new StickyHeaderDecoration(adapter, true);
20 | setHasOptionsMenu(true);
21 |
22 | mLRecyclerViewAdapter = new LRecyclerViewAdapter(adapter);
23 | list.setAdapter(mLRecyclerViewAdapter);
24 | list.addItemDecoration(decor, 1);
25 | }
26 |
27 | @Override
28 | public boolean onOptionsItemSelected(MenuItem item) {
29 | if (item.getItemId() == R.id.action_clear_cache) {
30 | decor.clearHeaderCache();
31 | return true;
32 | }
33 |
34 | return super.onOptionsItemSelected(item);
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/holder/BetterViewHolder.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.holder;
2 |
3 | import android.support.v7.widget.RecyclerView;
4 | import android.view.View;
5 |
6 | import com.lzx.demo.bean.Visitable;
7 |
8 | public abstract class BetterViewHolder extends RecyclerView.ViewHolder {
9 |
10 | public BetterViewHolder(View itemView) {
11 | super(itemView);
12 | }
13 |
14 | public abstract void bindItem(T t);
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/holder/CategoryViewHolder.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.holder;
2 |
3 | import android.view.View;
4 | import android.widget.TextView;
5 |
6 | import com.lzx.demo.R;
7 | import com.lzx.demo.bean.Category;
8 | import com.lzx.demo.bean.Visitable;
9 |
10 |
11 | /**
12 | * Created by lizhixian on 2016/12/24.
13 | */
14 |
15 | public class CategoryViewHolder extends BetterViewHolder {
16 |
17 | private TextView titleText;
18 | public CategoryViewHolder(View itemView) {
19 | super(itemView);
20 | titleText = (TextView) itemView.findViewById(R.id.title);
21 | }
22 |
23 | @Override
24 | public void bindItem(Visitable visitable) {
25 | Category category = (Category) visitable;
26 | titleText.setText(category.title);
27 |
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/holder/HotListViewHolder.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.holder;
2 |
3 | import android.support.v7.widget.LinearLayoutManager;
4 | import android.support.v7.widget.RecyclerView;
5 | import android.view.View;
6 |
7 | import com.lzx.demo.R;
8 | import com.lzx.demo.adapter.HotsAdapter;
9 | import com.lzx.demo.bean.HotList;
10 | import com.lzx.demo.bean.Product;
11 | import com.lzx.demo.bean.Visitable;
12 |
13 | import java.util.List;
14 |
15 |
16 | /**
17 | * Created by lizhixian on 2016/12/24.
18 | */
19 |
20 | public class HotListViewHolder extends BetterViewHolder {
21 |
22 | private RecyclerView recyclerView;
23 | private HotsAdapter adapter;
24 | public HotListViewHolder(View itemView) {
25 | super(itemView);
26 | recyclerView = (RecyclerView) itemView.findViewById(R.id.recycler_view);
27 | LinearLayoutManager layoutManager
28 | = new LinearLayoutManager(itemView.getContext(), LinearLayoutManager.HORIZONTAL, false);
29 | layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
30 | recyclerView.setLayoutManager(layoutManager);
31 | adapter = new HotsAdapter();
32 | recyclerView.setAdapter(adapter);
33 | }
34 |
35 | @Override
36 | public void bindItem(Visitable visitable) {
37 | HotList hotList = (HotList) visitable;
38 | List products = hotList.products;
39 | adapter.setData(products);
40 | adapter.notifyDataSetChanged();
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/holder/ProductListViewHolder.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.holder;
2 |
3 | import android.support.v7.widget.GridLayoutManager;
4 | import android.support.v7.widget.RecyclerView;
5 | import android.view.View;
6 |
7 | import com.lzx.demo.R;
8 | import com.lzx.demo.adapter.ProductsAdapter;
9 | import com.lzx.demo.bean.Product;
10 | import com.lzx.demo.bean.ProductList;
11 | import com.lzx.demo.bean.Visitable;
12 |
13 | import java.util.List;
14 |
15 |
16 | /**
17 | * Created by lizhixian on 2016/12/24.
18 | */
19 |
20 | public class ProductListViewHolder extends BetterViewHolder {
21 |
22 | private RecyclerView recyclerView;
23 | private ProductsAdapter adapter;
24 | public ProductListViewHolder(View itemView) {
25 | super(itemView);
26 | recyclerView = (RecyclerView) itemView.findViewById(R.id.recycler_view);
27 | GridLayoutManager layoutManager = new GridLayoutManager(itemView.getContext(), 2);
28 | recyclerView.setLayoutManager(layoutManager);
29 | recyclerView.setHasFixedSize(true);
30 | adapter = new ProductsAdapter();
31 | recyclerView.setAdapter(adapter);
32 | }
33 |
34 | @Override
35 | public void bindItem(Visitable visitable) {
36 | ProductList productList = (ProductList) visitable;
37 | List products = productList.products;
38 | adapter.setData(products);
39 | adapter.notifyDataSetChanged();
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/imageloader/BaseImageLoaderStrategy.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.imageloader;
2 |
3 | import android.content.Context;
4 |
5 | /**
6 | * Created by Lzx on 2016/12/8.
7 | * abstract class/interface defined to load image
8 | * (Strategy Pattern used here)
9 | */
10 |
11 | public interface BaseImageLoaderStrategy {
12 | void loadImage(Context context, ImageLoader imageLoader);
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/imageloader/GlideImageLoaderStrategy.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.imageloader;
2 |
3 | import android.content.Context;
4 |
5 | import com.bumptech.glide.Glide;
6 | import com.bumptech.glide.load.engine.DiskCacheStrategy;
7 |
8 | /**
9 | * Created by Lzx on 2016/12/8.
10 | *
11 | * using {@link Glide} to load image
12 | * 参考:https://github.com/CameloeAnthony/Ant
13 | */
14 |
15 | public class GlideImageLoaderStrategy implements BaseImageLoaderStrategy {
16 | @Override
17 | public void loadImage(Context context, ImageLoader imageLoader) {
18 | //if currently not under wifi
19 | if(!ImageLoaderUtil.wifiFlag) {
20 | loadNormal(context,imageLoader);
21 | return;
22 | }
23 |
24 | int strategy = imageLoader.getWifiStrategy();
25 |
26 | if (strategy == ImageLoaderUtil.LOAD_STRATEGY_ONLY_WIFI) {
27 | int netType = ImageLoaderUtil.getNetWorkType(context);
28 | //if wifi ,load pic
29 | if (netType == ImageLoaderUtil.NETWORKTYPE_WIFI) {
30 | loadNormal(context,imageLoader);
31 | } else {
32 | //if not wifi ,load cache
33 | loadCache(context,imageLoader);
34 | }
35 | } else {
36 | //如果不是在wifi下才加载图片
37 | loadNormal(context,imageLoader);
38 | }
39 | }
40 |
41 | /**
42 | * load image with Glide
43 | */
44 | private void loadNormal(Context context, ImageLoader imageLoader) {
45 | Glide.with(context)
46 | .load(imageLoader.getUrl())
47 | .into(imageLoader.getImgView());
48 | }
49 |
50 | /**
51 | * load cache image with Glide
52 | */
53 | private void loadCache(Context context, ImageLoader imageLoader) {
54 |
55 | //缓存策略解说:
56 | //all:缓存源资源和转换后的资源
57 | //none:不作任何磁盘缓存
58 | //source:缓存源资源
59 | //result:缓存转换后的资源
60 | Glide.with(context).load(imageLoader.getUrl()).into(imageLoader.getImgView());
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/imageloader/PicassoImageLoaderStrategy.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.imageloader;
2 |
3 | import android.content.Context;
4 |
5 | /**
6 | * Created by Lzx on 2016/12/8.
7 | * using Picasso to load image
8 | */
9 |
10 | public class PicassoImageLoaderStrategy implements BaseImageLoaderStrategy {
11 | @Override
12 | public void loadImage(Context context, ImageLoader imageLoader) {
13 | //Todo
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/interfaces/IExpandable.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.interfaces;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | * implement the interface if the item is expandable
7 | */
8 | public interface IExpandable {
9 | boolean isExpanded();
10 | void setExpanded(boolean expanded);
11 | List getSubItems();
12 |
13 | /**
14 | * Get the level of this item. The level start from 0.
15 | * If you don't care about the level, just return a negative.
16 | */
17 | int getLevel();
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/interfaces/OnHeaderClickListener.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.interfaces;
2 |
3 | /**
4 | * Created by Oubowu on 2016/7/24 23:53.
5 | *
6 | * 顶部标签点击监听
7 | */
8 | public interface OnHeaderClickListener {
9 |
10 | void onHeaderClick(int id, int position, T data);
11 |
12 | void onHeaderLongClick(int id, int position, T data);
13 |
14 | void onHeaderDoubleClick(int id, int position, T data);
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/interfaces/OnItemDragListener.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.interfaces;
2 |
3 | import android.support.v7.widget.RecyclerView;
4 |
5 | public interface OnItemDragListener {
6 | void onItemDragStart(RecyclerView.ViewHolder viewHolder, int pos);
7 | void onItemDragMoving(RecyclerView.ViewHolder source, int from, RecyclerView.ViewHolder target, int to);
8 | void onItemDragEnd(RecyclerView.ViewHolder viewHolder, int pos);
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/interfaces/OnItemSwipeListener.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.interfaces;
2 |
3 | import android.graphics.Canvas;
4 | import android.support.v7.widget.RecyclerView;
5 |
6 | public interface OnItemSwipeListener {
7 |
8 | /**
9 | * Called when the swipe action start.
10 | */
11 | void onItemSwipeStart(RecyclerView.ViewHolder viewHolder, int pos);
12 |
13 | /**
14 | * Called when the swipe action is over.
15 | * If you change the view on the start, you should reset is here, no matter the item has swiped or not.
16 | * @param pos If the view is swiped, pos will be negative.
17 | */
18 | void clearView(RecyclerView.ViewHolder viewHolder, int pos);
19 | /**
20 | * Called when item is swiped, the view is going to be removed from the adapter.
21 | */
22 | void onItemSwiped(RecyclerView.ViewHolder viewHolder, int pos);
23 |
24 | /**
25 | * Draw on the empty edge when swipe moving
26 | * @param canvas the empty edge's canvas
27 | * @param viewHolder The ViewHolder which is being interacted by the User or it was
28 | * interacted and simply animating to its original position
29 | * @param dX The amount of horizontal displacement caused by user's action
30 | * @param dY The amount of vertical displacement caused by user's action
31 | * @param isCurrentlyActive True if this view is currently being controlled by the user or
32 | * false it is simply animating back to its original state.
33 | */
34 | void onItemSwipeMoving(Canvas canvas, RecyclerView.ViewHolder viewHolder, float dX, float dY, boolean isCurrentlyActive);
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/interfaces/PinnedHeaderNotifyer.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.interfaces;
2 |
3 | /**
4 | * Created by lzx
5 | *
6 | * Recycler的Adapter必须继承此接口来告诉ItemDecoration粘性标签的类型和某个位置粘性标签的信息
7 | */
8 | public interface PinnedHeaderNotifyer {
9 |
10 | boolean isPinnedHeaderType(int viewType);
11 |
12 | T getPinnedHeaderInfo(int position);
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/interfaces/Sectionizer.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.interfaces;
2 |
3 | /**
4 | * Created by faudigue on 28/04/2015.
5 | */
6 | public interface Sectionizer{
7 | public String getSectionTitle(T object);
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/multitype/MultiTypeActivity.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.multitype;
2 |
3 | import com.lzx.demo.base.BaseMainActivity;
4 |
5 | public class MultiTypeActivity extends BaseMainActivity {
6 |
7 | private static final Class>[] ACTIVITY = {BilibiliActivity.class, ExpandableActivity.class};
8 | private static final String[] TITLE = {"BilibiliActivity","ExpandableActivity"};
9 |
10 | public Class>[] getActivitys() {
11 | return ACTIVITY;
12 | }
13 |
14 | @Override
15 | public String[] getTitles() {
16 | return TITLE;
17 | }
18 |
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/type/ListTypeFactory.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.type;
2 |
3 | import android.view.View;
4 |
5 | import com.lzx.demo.R;
6 | import com.lzx.demo.bean.Category;
7 | import com.lzx.demo.bean.HotList;
8 | import com.lzx.demo.bean.ProductList;
9 | import com.lzx.demo.holder.BetterViewHolder;
10 | import com.lzx.demo.holder.CategoryViewHolder;
11 | import com.lzx.demo.holder.HotListViewHolder;
12 | import com.lzx.demo.holder.ProductListViewHolder;
13 |
14 |
15 | public class ListTypeFactory implements TypeFactory {
16 |
17 |
18 | @Override
19 | public int type(Category category) {
20 | return R.layout.layout_list_item_category;
21 | }
22 |
23 | @Override
24 | public int type(ProductList products) {
25 | return R.layout.layout_item_list;
26 | }
27 |
28 | @Override
29 | public int type(HotList products) {
30 | return R.layout.layout_item_horizontal_list;
31 | }
32 |
33 | @Override
34 | public BetterViewHolder onCreateViewHolder(View itemView, int viewType) {
35 | BetterViewHolder viewHolder = null;
36 | switch (viewType) {
37 | case R.layout.layout_list_item_category:
38 | viewHolder = new CategoryViewHolder(itemView);
39 | break;
40 | case R.layout.layout_item_list:
41 | viewHolder = new ProductListViewHolder(itemView);
42 | break;
43 | case R.layout.layout_item_horizontal_list:
44 | viewHolder = new HotListViewHolder(itemView);
45 | break;
46 | default:
47 | break;
48 | }
49 |
50 | return viewHolder;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/type/TypeFactory.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.type;
2 |
3 | import android.view.View;
4 |
5 | import com.lzx.demo.bean.Category;
6 | import com.lzx.demo.bean.HotList;
7 | import com.lzx.demo.bean.ProductList;
8 | import com.lzx.demo.holder.BetterViewHolder;
9 |
10 | public interface TypeFactory {
11 |
12 | int type(Category title);
13 | int type(ProductList products);
14 | int type(HotList products);
15 |
16 | BetterViewHolder onCreateViewHolder(View itemView, int viewType);
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/ui/CoordinatorLayoutActivity.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.ui;
2 |
3 | import com.lzx.demo.base.BaseMainActivity;
4 |
5 | public class CoordinatorLayoutActivity extends BaseMainActivity {
6 |
7 | private static final Class>[] ACTIVITY = {CollapsingToolbarLayoutActivity.class, CollapsingToolbarLayoutActivity2.class, AlipayHomeActivity.class};
8 | private static final String[] TITLE = {"CollapsingToolbarLayoutActivity", "CollapsingToolbarLayoutActivity2", "AlipayHomeActivity"};
9 |
10 | public Class>[] getActivitys() {
11 | return ACTIVITY;
12 | }
13 |
14 | @Override
15 | public String[] getTitles() {
16 | return TITLE;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/ui/LinearLayoutDelActivity.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.ui;
2 |
3 | import android.os.Bundle;
4 | import android.support.v7.app.AppCompatActivity;
5 | import android.view.View;
6 | import android.widget.LinearLayout;
7 | import android.widget.Toast;
8 |
9 | import com.lzx.demo.R;
10 |
11 | public class LinearLayoutDelActivity extends AppCompatActivity {
12 |
13 | @Override
14 | protected void onCreate(Bundle savedInstanceState) {
15 | super.onCreate(savedInstanceState);
16 | setContentView(R.layout.activity_linear_layout_del);
17 | LinearLayout llContent = (LinearLayout) findViewById(R.id.llContent);
18 | llContent.setOnClickListener(new View.OnClickListener() {
19 | @Override
20 | public void onClick(View v) {
21 | Toast.makeText(LinearLayoutDelActivity.this, "内容区域被点击", Toast.LENGTH_SHORT).show();
22 | }
23 | });
24 | findViewById(R.id.btnDelete).setOnClickListener(new View.OnClickListener() {
25 | @Override
26 | public void onClick(View v) {
27 | Toast.makeText(LinearLayoutDelActivity.this, "删除按钮被点击", Toast.LENGTH_SHORT).show();
28 | }
29 | });
30 |
31 |
32 | LinearLayout llContent2 = (LinearLayout) findViewById(R.id.llContent);
33 | llContent2.setOnClickListener(new View.OnClickListener() {
34 | @Override
35 | public void onClick(View v) {
36 | Toast.makeText(LinearLayoutDelActivity.this, "第二个内容区域被点击", Toast.LENGTH_SHORT).show();
37 | }
38 | });
39 | findViewById(R.id.btnDelete2).setOnClickListener(new View.OnClickListener() {
40 | @Override
41 | public void onClick(View v) {
42 | Toast.makeText(LinearLayoutDelActivity.this, "第二个删除按钮被点击", Toast.LENGTH_SHORT).show();
43 | }
44 | });
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/ui/PulldownRefreshActivity.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.ui;
2 |
3 | import com.lzx.demo.base.BaseMainActivity;
4 |
5 | public class PulldownRefreshActivity extends BaseMainActivity {
6 |
7 | private static final Class>[] ACTIVITY = {ScrollViewLayoutActivity.class, WebViewActivity.class};
8 | private static final String[] TITLE = {"ScrollViewLayoutActivity","WebViewActivity"};
9 |
10 | public Class>[] getActivitys() {
11 | return ACTIVITY;
12 | }
13 |
14 | @Override
15 | public String[] getTitles() {
16 | return TITLE;
17 | }
18 |
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/ui/ScrollViewLayoutActivity.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.ui;
2 |
3 | import android.os.Bundle;
4 | import android.os.Handler;
5 | import android.support.v7.app.AppCompatActivity;
6 |
7 | import com.github.jdsjlzx.recyclerview.ProgressStyle;
8 | import com.lzx.demo.R;
9 | import com.lzx.demo.view.PullScrollView;
10 |
11 | public class ScrollViewLayoutActivity extends AppCompatActivity {
12 |
13 | @Override
14 | protected void onCreate(Bundle savedInstanceState) {
15 | super.onCreate(savedInstanceState);
16 | setContentView(R.layout.activity_scrollview);
17 |
18 |
19 | final PullScrollView refreshLayout = (PullScrollView) findViewById(R.id.refresh_layout);
20 | //设置头部加载颜色
21 | refreshLayout.setHeaderViewColor(R.color.colorAccent, R.color.dark ,android.R.color.white);
22 | refreshLayout.setRefreshProgressStyle(ProgressStyle.LineSpinFadeLoader);
23 | refreshLayout.setRefreshListener(new PullScrollView.RefreshListener() {
24 | @Override
25 | public void onRefresh() {
26 | new Handler().postDelayed(new Runnable() {
27 | @Override
28 | public void run() {
29 | refreshLayout.setRefreshCompleted();
30 | }
31 | }, 1000);
32 | }
33 | });
34 |
35 | refreshLayout.refreshWithPull();
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/ui/SectionCollectionActivity.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.ui;
2 |
3 | import com.lzx.demo.base.BaseMainActivity;
4 |
5 | public class SectionCollectionActivity extends BaseMainActivity {
6 |
7 | private static final Class>[] ACTIVITY = {SectionLayoutActivity.class, SectionAnimalActivity.class};
8 | private static final String[] TITLE = {"SectionLayoutActivity", "SectionAnimalActivity"};
9 |
10 |
11 | public Class>[] getActivitys() {
12 | return ACTIVITY;
13 | }
14 |
15 | @Override
16 | public String[] getTitles() {
17 | return TITLE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/ui/SwipeMenuActivity.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.ui;
2 |
3 | import com.lzx.demo.base.BaseMainActivity;
4 |
5 | public class SwipeMenuActivity extends BaseMainActivity {
6 |
7 | private static final Class>[] ACTIVITY = {SwipeDeleteActivity.class, ListDragMenuActivity.class,LinearLayoutDelActivity.class};
8 | private static final String[] TITLE = {"SwipeDeleteActivity", "ListDragMenuActivity","LinearLayoutDelActivity"};
9 |
10 | public Class>[] getActivitys() {
11 | return ACTIVITY;
12 | }
13 |
14 | @Override
15 | public String[] getTitles() {
16 | return TITLE;
17 | }
18 |
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/ui/WebViewActivity.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.ui;
2 |
3 | import android.os.Bundle;
4 | import android.os.Handler;
5 | import android.support.v7.app.AppCompatActivity;
6 | import android.webkit.WebChromeClient;
7 | import android.webkit.WebView;
8 | import android.webkit.WebViewClient;
9 |
10 | import com.github.jdsjlzx.recyclerview.ProgressStyle;
11 | import com.lzx.demo.R;
12 | import com.lzx.demo.view.PullScrollView;
13 |
14 | public class WebViewActivity extends AppCompatActivity {
15 |
16 | @Override
17 | protected void onCreate(Bundle savedInstanceState) {
18 | super.onCreate(savedInstanceState);
19 | setContentView(R.layout.activity_webview);
20 |
21 |
22 | final PullScrollView refreshLayout = (PullScrollView) findViewById(R.id.refresh_layout);
23 | final WebView webView = (WebView) findViewById(R.id.webview);
24 | webView.getSettings().setJavaScriptEnabled(true);
25 | webView.setWebChromeClient(new WebChromeClient());
26 | webView.setWebViewClient(new WebViewClient());
27 | //设置头部加载颜色
28 | refreshLayout.setHeaderViewColor(R.color.colorAccent, R.color.dark ,android.R.color.white);
29 | refreshLayout.setRefreshProgressStyle(ProgressStyle.LineSpinFadeLoader);
30 | refreshLayout.setRefreshListener(new PullScrollView.RefreshListener() {
31 | @Override
32 | public void onRefresh() {
33 | new Handler().postDelayed(new Runnable() {
34 | @Override
35 | public void run() {
36 | webView.loadUrl("http://www.stay4it.com");
37 | refreshLayout.setRefreshCompleted();
38 | }
39 | }, 1000);
40 | }
41 | });
42 |
43 | refreshLayout.refreshWithPull();
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/util/AppToast.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.util;
2 |
3 | import android.content.Context;
4 | import android.widget.Toast;
5 |
6 | public class AppToast {
7 |
8 | protected static final String TAG = "AppToast";
9 | public static Toast toast;
10 | /**
11 | * 信息提示
12 | *
13 | * @param context
14 | * @param content
15 | */
16 | public static void makeToast(Context context, String content) {
17 | if(context==null)return;
18 | if(toast != null)
19 | toast.cancel();
20 | toast = Toast.makeText(context, content, Toast.LENGTH_LONG);
21 | toast.show();
22 | }
23 |
24 | public static void makeShortToast(Context context, String content) {
25 | if(context==null)return;
26 | if(toast != null)
27 | toast.cancel();
28 | toast = Toast.makeText(context, content, Toast.LENGTH_SHORT);
29 | toast.show();
30 | }
31 |
32 | public static void showShortText(Context context, int resId) {
33 | try {
34 | if(context==null)return;
35 | if(toast != null)
36 | toast.cancel();
37 | toast = Toast.makeText(context, resId, Toast.LENGTH_SHORT);
38 | toast.show();
39 | } catch (Exception e) {
40 | }
41 | }
42 |
43 | public static void showShortText(Context context, CharSequence text) {
44 | if(context==null)return;
45 | if(toast != null)
46 | toast.cancel();
47 | toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
48 | toast.show();
49 | }
50 |
51 | public static void showLongText(Context context, int resId) {
52 | try {
53 | if(context==null)return;
54 | if(toast != null)
55 | toast.cancel();
56 | toast = Toast.makeText(context, resId, Toast.LENGTH_LONG);
57 | toast.show();
58 |
59 | } catch (Exception e) {
60 | }
61 | }
62 |
63 |
64 | }
65 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/util/AppUtil.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.util;
2 |
3 | import android.content.Context;
4 |
5 | /**
6 | * Created by lizhixian on 16/7/30.
7 | */
8 |
9 | public class AppUtil {
10 |
11 | public static int dip2px(Context context, float dpValue) {
12 | final float scale = context.getResources().getDisplayMetrics().density;
13 | return (int) (dpValue * scale + 0.5f);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/util/HorizontalItemDecorator.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.util;
2 |
3 | import android.graphics.Rect;
4 | import android.support.v7.widget.RecyclerView;
5 | import android.view.View;
6 |
7 | /**
8 | * @author msahakyan
9 | */
10 | public class HorizontalItemDecorator extends RecyclerView.ItemDecoration {
11 |
12 | private final int mHorizontalSpaceWidth;
13 |
14 | public HorizontalItemDecorator(int horizontalSpaceHeight) {
15 | this.mHorizontalSpaceWidth = horizontalSpaceHeight;
16 | }
17 |
18 | @Override
19 | public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
20 | RecyclerView.State state) {
21 | outRect.left = outRect.right = mHorizontalSpaceWidth;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/util/TLog.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.util;
2 |
3 | import android.util.Log;
4 |
5 | public class TLog {
6 | public static final String LOG_TAG = "AppLog";
7 | public static boolean DEBUG = true;
8 |
9 | public TLog() {
10 | }
11 |
12 | public static final void analytics(String log) {
13 | if (DEBUG)
14 | Log.d(LOG_TAG, log);
15 | }
16 |
17 | public static final void error(String log) {
18 | if (DEBUG)
19 | Log.e(LOG_TAG, "" + log);
20 | }
21 |
22 | public static final void log(String log) {
23 | if (DEBUG)
24 | Log.i(LOG_TAG, log);
25 | }
26 |
27 | public static final void log(String tag, String log) {
28 | if (DEBUG)
29 | Log.i(tag, log);
30 | }
31 |
32 | public static final void logv(String log) {
33 | if (DEBUG)
34 | Log.v(LOG_TAG, log);
35 | }
36 |
37 | public static final void warn(String log) {
38 | if (DEBUG)
39 | Log.w(LOG_TAG, log);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/view/CommonFooter.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.view;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.widget.RelativeLayout;
6 |
7 | import com.lzx.demo.R;
8 |
9 |
10 | /**
11 | * RecyclerView的FooterView,简单的展示一个View
12 | */
13 | public class CommonFooter extends RelativeLayout {
14 |
15 | public CommonFooter(Context context,int resId) {
16 | super(context);
17 | init(context, resId);
18 | }
19 |
20 | public CommonFooter(Context context, AttributeSet attrs) {
21 | super(context, attrs);
22 | init(context);
23 | }
24 |
25 | public CommonFooter(Context context, AttributeSet attrs, int defStyleAttr) {
26 | super(context, attrs, defStyleAttr);
27 | init(context);
28 | }
29 |
30 | public void init(Context context) {
31 |
32 | inflate(context, R.layout.layout_recyclerview_footer, this);
33 | }
34 |
35 | public void init(Context context,int resId) {
36 |
37 | inflate(context, resId, this);
38 | }
39 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/view/CommonHeader.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.view;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.widget.RelativeLayout;
6 |
7 | import com.lzx.demo.R;
8 |
9 |
10 | /**
11 | * RecyclerView的HeaderView,简单的展示一个TextView
12 | */
13 | public class CommonHeader extends RelativeLayout {
14 |
15 | public CommonHeader(Context context,int resId) {
16 | super(context);
17 | init(context,resId);
18 | }
19 |
20 | public CommonHeader(Context context, AttributeSet attrs) {
21 | super(context, attrs);
22 | init(context);
23 | }
24 |
25 | public CommonHeader(Context context, AttributeSet attrs, int defStyleAttr) {
26 | super(context, attrs, defStyleAttr);
27 | init(context);
28 | }
29 |
30 | public void init(Context context) {
31 |
32 | inflate(context, R.layout.sample_header, this);
33 | }
34 |
35 | public void init(Context context,int resId) {
36 |
37 | inflate(context, resId, this);
38 | }
39 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/view/SampleFooter.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.view;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.widget.RelativeLayout;
6 |
7 | import com.lzx.demo.R;
8 |
9 |
10 | /**
11 | * RecyclerView的FooterView,简单的展示一个TextView
12 | */
13 | public class SampleFooter extends RelativeLayout {
14 |
15 | public SampleFooter(Context context) {
16 | super(context);
17 | init(context);
18 | }
19 |
20 | public SampleFooter(Context context, AttributeSet attrs) {
21 | super(context, attrs);
22 | init(context);
23 | }
24 |
25 | public SampleFooter(Context context, AttributeSet attrs, int defStyleAttr) {
26 | super(context, attrs, defStyleAttr);
27 | init(context);
28 | }
29 |
30 | public void init(Context context) {
31 |
32 | inflate(context, R.layout.sample_footer, this);
33 | }
34 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/lzx/demo/view/SampleHeader.java:
--------------------------------------------------------------------------------
1 | package com.lzx.demo.view;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.widget.RelativeLayout;
6 |
7 | import com.lzx.demo.R;
8 |
9 | /**
10 | * RecyclerView的HeaderView,简单的展示一个TextView
11 | */
12 | public class SampleHeader extends RelativeLayout {
13 |
14 | public SampleHeader(Context context) {
15 | super(context);
16 | init(context);
17 | }
18 |
19 | public SampleHeader(Context context, AttributeSet attrs) {
20 | super(context, attrs);
21 | init(context);
22 | }
23 |
24 | public SampleHeader(Context context, AttributeSet attrs, int defStyleAttr) {
25 | super(context, attrs, defStyleAttr);
26 | init(context);
27 | }
28 |
29 | public void init(Context context) {
30 |
31 | inflate(context, R.layout.sample_header, this);
32 | }
33 | }
--------------------------------------------------------------------------------
/app/src/main/res/drawable/circle_green.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/divider_recycler.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_group_black_36dp.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_keyboard_arrow_right_black_36dp.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_person_black_36dp.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_photo_default.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/drawable/ic_photo_default.9.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_product_default.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/drawable/ic_product_default.9.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/iconfont_downgrey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/drawable/iconfont_downgrey.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/img_avatar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/drawable/img_avatar.jpg
--------------------------------------------------------------------------------
/app/src/main/res/drawable/img_header.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/drawable/img_header.jpg
--------------------------------------------------------------------------------
/app/src/main/res/drawable/profile_anonymous_user.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/drawable/profile_anonymous_user.jpg
--------------------------------------------------------------------------------
/app/src/main/res/drawable/refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/drawable/refresh.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/sample_footer_loading_progress.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -
5 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_green.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_purple.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_red.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/selector_white_preferences_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_edit_corners_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_search.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_white_preferences_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_white_preferences_item_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_emptyview.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
15 |
16 |
22 |
23 |
24 |
25 |
30 |
31 |
35 |
36 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
15 |
16 |
22 |
23 |
24 |
29 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_multi_click_loading.xml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
14 |
15 |
21 |
22 |
23 |
24 |
29 |
30 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_section.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_section_pager.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
15 |
16 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_splash.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
20 |
21 |
22 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_webview.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/content_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_recycler.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/header_inline_test.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
29 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/header_test.xml:
--------------------------------------------------------------------------------
1 |
2 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_expandable_lv0.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
19 |
20 |
29 |
30 |
38 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_expandable_lv1.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
19 |
20 |
29 |
30 |
38 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_inline_test.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_test.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_banner_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_empty.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_goods_related_item.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_item_horizontal_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_item_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_list_item_animal.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_list_item_category.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
15 |
16 |
19 |
20 |
27 |
28 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_list_item_goods_related.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
17 |
18 |
25 |
26 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_list_item_hot.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_list_item_nest_inner.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
19 |
20 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_list_item_nest_wrapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
19 |
20 |
28 |
29 |
33 |
34 |
39 |
40 |
41 |
45 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_list_item_pinned_data.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
22 |
23 |
28 |
29 |
34 |
35 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_list_item_pinned_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
19 |
20 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_list_item_product.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/layout_list_section_animal.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/list_item_category.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/list_item_foot.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
13 |
14 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/list_item_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
19 |
20 |
25 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/list_item_pic.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
18 |
19 |
20 |
25 |
26 |
33 |
34 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/list_item_swipe.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
17 |
22 |
23 |
28 |
29 |
30 |
37 |
38 |
46 |
47 |
54 |
55 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/list_item_text.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
19 |
20 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/moments_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
11 |
12 |
14 |
15 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/qzone_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
8 |
9 |
11 |
12 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_common_list_footer.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
14 |
15 |
20 |
21 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_common_list_footer_end.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_common_list_footer_loading.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_common_list_footer_network_error.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_footer.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
24 |
25 |
29 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
24 |
25 |
29 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_horizontal_activity.xml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
14 |
15 |
21 |
22 |
23 |
24 |
29 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_horizontal_footer.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
24 |
25 |
29 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_horizontal_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
25 |
26 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_item_card.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
18 |
19 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_item_text.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_item_text_horizontal.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
18 |
19 |
23 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_ll_activity.xml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
14 |
15 |
21 |
22 |
23 |
24 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sample_swpierefresh_activity.xml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
14 |
15 |
21 |
22 |
23 |
24 |
30 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/super_header_test.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/view_anchor.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
18 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/view_cust_recyclerview_footer.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
21 |
22 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/view_manual_recyclerview_footer.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
21 |
22 |
27 |
28 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/view_recyclerview_footer_loading.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/view_recyclerview_footer_network_error.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/view_recyclerview_footer_view_manual.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_all_activity.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_list_drag.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
9 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
5 |
10 |
15 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_main_expand.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
10 |
11 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_main_refresh.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_partial_refresh.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_setion.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
11 |
12 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xhdpi/bg.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/bg_btn_voice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xhdpi/bg_btn_voice.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xhdpi/ic_location.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_notice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xhdpi/ic_notice.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xhdpi/ic_search.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xhdpi/icon.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/slient.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xhdpi/slient.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/arrow_down.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/bg.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_action_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_action_add.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_action_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_action_close.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_action_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_action_delete.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_action_wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_action_wechat.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_arrow.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_big_chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_big_chat.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_big_pay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_big_pay.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_big_qrcode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_big_qrcode.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_big_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_big_scan.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_contact.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_plus.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_search.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_small_charge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_small_charge.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_small_money.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_small_money.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_small_pay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_small_pay.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_small_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/ic_small_scan.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/img1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/img1.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/img2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/img2.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/img3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/img3.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/img4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/img4.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/img5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/img5.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/img6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/img6.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/img_00.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/img_00.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/img_01.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/img_01.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/img_10.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/img_10.webp
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/img_11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/img_11.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/loading_bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/loading_bg.jpg
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/menu.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/sample_footer_error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/sample_footer_error.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/sample_footer_loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/sample_footer_loading.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/smile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxhdpi/smile.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/array.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | - 左右两侧都有
5 | - 根据ViewType显示菜单
6 | - 长按拖拽Item(List),与Menu结合
7 | - 长按拖拽Item(Grid)
8 | - 滑动直接删除Item
9 | - 指定某个Item不能拖拽或者不能滑动删除
10 | - 用SwipeMenuLayout实现你自己的侧滑
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3eb6cf
4 | #249bb3
5 | #FF4081
6 |
7 | #F0F0F0
8 | #8A000000
9 |
10 | #445566
11 |
12 | #FF0000
13 | #FF6666
14 | #37C000
15 | #30A070
16 | #9932CC
17 | #9F79EE
18 |
19 | #e0e0e0
20 | #ffffff
21 | #5e5656
22 | #666262
23 | #000000
24 | #c9cbcd
25 | #f5f5f5
26 | #c9cbcd
27 | #d2c3c7
28 | #eeeeee
29 | #4a5158
30 | #3a7eec
31 | #93b3d7
32 | #fafafa
33 | #2e2d2d
34 | #404346
35 | #ff4a57
36 | #14acae
37 |
38 | #1983d1
39 | #1673b8
40 |
41 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 | 0.66dp
7 | 4dp
8 | 10dp
9 | 14dp
10 | 22dp
11 | 36dp
12 | 40dp
13 | 60dp
14 | 72dp
15 |
16 | 12sp
17 | 14sp
18 | 16sp
19 |
20 | 1dp
21 | 4dp
22 |
23 | 60dp
24 | 10dp
25 |
26 | 15dp
27 | 100dp
28 | 36dp
29 |
30 | 90dp
31 | 130dp
32 | 140dp
33 | 3dp
34 | 8dp
35 | 6dp
36 |
37 | 200dp
38 | 16dp
39 | 16dp
40 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | LRecyclerView
3 |
4 | The Header
5 | The Footer
6 |
7 |
8 | 正在加载中…
9 | 点击重新加载
10 | 已经到底了
11 |
12 | About
13 | Clear Cache
14 |
15 | Expand All
16 | Collapse All
17 |
18 | expanded
19 | collapsed
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
15 |
22 |
23 |
--------------------------------------------------------------------------------
/art/alipay.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/alipay.jpg
--------------------------------------------------------------------------------
/art/art1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/art1.png
--------------------------------------------------------------------------------
/art/art2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/art2.png
--------------------------------------------------------------------------------
/art/art3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/art3.png
--------------------------------------------------------------------------------
/art/art4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/art4.png
--------------------------------------------------------------------------------
/art/art5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/art5.png
--------------------------------------------------------------------------------
/art/art6.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/art6.gif
--------------------------------------------------------------------------------
/art/art7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/art7.png
--------------------------------------------------------------------------------
/art/art8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/art8.png
--------------------------------------------------------------------------------
/art/art9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/art9.png
--------------------------------------------------------------------------------
/art/pager.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/pager.gif
--------------------------------------------------------------------------------
/art/swipe_1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/swipe_1.gif
--------------------------------------------------------------------------------
/art/swipe_2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/swipe_2.gif
--------------------------------------------------------------------------------
/art/swipe_3.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/swipe_3.gif
--------------------------------------------------------------------------------
/art/swipe_4.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/swipe_4.gif
--------------------------------------------------------------------------------
/art/swipe_5.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/swipe_5.gif
--------------------------------------------------------------------------------
/art/swipe_6.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/swipe_6.gif
--------------------------------------------------------------------------------
/art/swipe_7.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/swipe_7.gif
--------------------------------------------------------------------------------
/art/tamic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/tamic.jpg
--------------------------------------------------------------------------------
/art/wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/art/wechat.png
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | mavenLocal()
6 | google()
7 | mavenCentral()
8 | jcenter()
9 | }
10 | dependencies {
11 | classpath 'com.android.tools.build:gradle:3.2.1'
12 | classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
13 | // NOTE: Do not place your application dependencies here; they belong
14 | // in the individual module build.gradle files
15 | }
16 | }
17 |
18 | allprojects {
19 | repositories {
20 | maven { url "https://jitpack.io" }
21 | mavenLocal()
22 | google()
23 | mavenCentral()
24 | jcenter()
25 | }
26 | }
27 |
28 | task clean(type: Delete) {
29 | delete rootProject.buildDir
30 | }
31 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jdsjlzx/LRecyclerView/e4aa22548b3c59d1270d194b52a615c1e38ee45f/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Oct 10 17:33:04 CST 2018
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
7 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':LRecyclerview_library'
2 |
--------------------------------------------------------------------------------