All Projects → byteam → Superadapter

byteam / Superadapter

[Deprecated]. 🚀 Adapter(BaseAdapter, RecyclerView.Adapter) wrapper for Android. 一个Adapter同时适用RecyclerView、ListView、GridView等。

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Superadapter

Adapter
A quick adapter library for RecyclerView, GridView, ListView, ViewPager, Spinner
Stars: ✭ 376 (-41.07%)
Mutual labels:  adapter, recyclerview, listview, gridview
Google Books Android Viewer
Android library to bridge between RecyclerView and sources like web page or database. Includes demonstrator (Google Books viewer)
Stars: ✭ 37 (-94.2%)
Mutual labels:  adapter, recyclerview, listview
adapster
Android library designed to enrich and make your RecyclerView adapters more SOLID
Stars: ✭ 17 (-97.34%)
Mutual labels:  adapter, listview, recyclerview
Boardview
A draggable boardview for java android (Kanban style)
Stars: ✭ 309 (-51.57%)
Mutual labels:  adapter, recyclerview, listview
Placeholderview
This library provides advance views for lists and stacks. Some of the views are build on top of RecyclerView and others are written in their own. Annotations are compiled by annotation processor to generate bind classes. DOCS -->
Stars: ✭ 2,104 (+229.78%)
Mutual labels:  recyclerview, listview, gridview
Tableview
TableView is a powerful Android library for displaying complex data structures and rendering tabular data composed of rows, columns and cells.
Stars: ✭ 2,928 (+358.93%)
Mutual labels:  adapter, recyclerview, gridview
Easyadapter
Android 轻量级适配器,简化使用,适应所有的AbsListView、RecyclerView。支持HeaderView与FooterView~
Stars: ✭ 160 (-74.92%)
Mutual labels:  adapter, recyclerview, listview
Overscroll Decor
Android: iOS-like over-scrolling effect applicable over almost all scrollable Android views.
Stars: ✭ 2,671 (+318.65%)
Mutual labels:  recyclerview, listview, gridview
GenericAdapter
⛳️ Easy to use android databinding ready recyclerview adapter
Stars: ✭ 26 (-95.92%)
Mutual labels:  adapter, listview, recyclerview
android-page
android 分页列表数据加载引擎,主要封装了android分页列表数据加载的各个组件,如果你有一个需要分页加载的List列表,都可以使用此框架实现。
Stars: ✭ 15 (-97.65%)
Mutual labels:  listview, recyclerview, gridview
GenericRecyclerAdapter
Easiest way to use RecyclerView. Reduce boilerplate code! You don't need to write adapters for listing pages anymore!
Stars: ✭ 53 (-91.69%)
Mutual labels:  adapter, listview, recyclerview
Countdowntask
⌛️A countdown library for Android.
Stars: ✭ 64 (-89.97%)
Mutual labels:  recyclerview, listview, gridview
Kotlin Adapter
🔥 RecyclerView,AbsListView适配器, 支持多种视图样式, 支持吸顶、侧滑删除、拖拽效果
Stars: ✭ 132 (-79.31%)
Mutual labels:  adapter, recyclerview, listview
Commonadapter
一个适用于ListView/GridView/RecyclerView的Adapter库,简化大量重复代码,支持多种布局,可自定义图片加载的实现。
Stars: ✭ 219 (-65.67%)
Mutual labels:  adapter, recyclerview, listview
recycler-adapter
RecyclerView-driven declarative UIs
Stars: ✭ 124 (-80.56%)
Mutual labels:  adapter, listview, recyclerview
Imageviewer
🔮图片浏览器,支持图片手势缩放、拖拽等操作,`自定义View`的模式显示,自定义图片加载方式,更加灵活,易于扩展,同时也适用于RecyclerView、ListView的横向和纵向列表模式,最低支持版本为Android 3.0及以上...
Stars: ✭ 363 (-43.1%)
Mutual labels:  recyclerview, listview, gridview
recyclerview-list-drag-and-drop
No description or website provided.
Stars: ✭ 50 (-92.16%)
Mutual labels:  listview, recyclerview
GhostAdapter
No description or website provided.
Stars: ✭ 15 (-97.65%)
Mutual labels:  adapter, recyclerview
react-recycled-scrolling
Simulate normal scrolling by using only fixed number of DOM elements for large lists of items with React Hooks
Stars: ✭ 26 (-95.92%)
Mutual labels:  listview, recyclerview
react-native-nlist
原生Listview Native lListView react-native encapsulation Memory recovery reusing High performance
Stars: ✭ 60 (-90.6%)
Mutual labels:  listview, recyclerview

Version API Android Arsenal

Chinese Version 中文版

QQ群:271849001(新)

QQ群二维码

SuperAdapter

Adapter(ListAdapter, RecyclerView.Adapter) wrapper for android.

Less code for redundant adapter. You won't need to write ViewHolder, createView, setTag, getTag, and confuse how to setOnItemClickListener to RecyclerView, etc. The only thing you really need to do is that implement a method onBind().

Android Studio:

In build.gradle:

compile 'com.android.support:recyclerview-v7:...'
...
compile 'org.byteam.superadapter:superadapter:x.y.z'

Current latest version: Version

Eclipse:

Add latest Jar to libs dir manually.

Features

  • Less code!
  • Header and footer.
  • OnItemClickListener and OnItemLongClickListener.
  • Hide view holder.
  • Supports both BaseAdapter and RecyclerView.Adapter.
  • Wraps CRUD.
  • Loading animation supporting!

How to use

Simple adapter

public class SingleAdapter extends SuperAdapter<String> {
	public SingleAdapter(Context context, List<String> list, int layoutResId) {
		super(context, list, layoutResId);
	}

	@Override
	public void onBind(SuperViewHolder holder, int viewType, int position, String item) {
		holder.setText(R.id.tv_name, item);
	}
}

Then:

mSingleAdapter = new RecyclerSingleAdapter(getContext(), names, R.layout.your_item);  
recyclerView.setAdapter(mSingleAdapter);

Multiple item types adapter

public class MultipleAdapter extends SuperAdapter<MockModel> {
	public MultipleAdapter(Context context, List<MockModel> list, IMulItemViewType<MockModel> multiItemViewType) {
		super(context, list, multiItemViewType);
	}

	@Override
	public void onBind(SuperViewHolder holder, int viewType, int position, MockModel item) {
		switch (viewType) {
			case 0:
				holder.setText(R.id.tv_name, item.getName());
				break;
			case 1:
				holder.setText(R.id.tv_name, item.getName());
				holder.setImageResource(R.id.iv_portrait, R.mipmap.ic_launcher);
				holder.setText(R.id.tv_age, String.valueOf(item.getAge()));
				break;
		}
	}
}

Then:

multiAdapter = new MultipleAdapter(getContext(), models, new IMulItemViewType<MockModel>() {
	@Override
	public int getItemViewType(int position, MockModel mockModel) {
		if (position % 2 == 0) {
			return 0;
		}
		return 1;
	}

	@Override
	public int getLayoutId(int viewType) {
		if (viewType == 0) {
			return R.layout.item_type1;
		}
		return R.layout.item_type2;
	}

	@Override
	public int getViewTypeCount() {
		return 2;
	}
});
recyclerView.setAdapter(mMultiAdapter);

If you don't want to offer IMulItemViewType when creating adapter, you can override offerMultiItemViewType() in adapter:

@Override
protected IMulItemViewType<MockModel> offerMultiItemViewType() {
	return new IMulItemViewType<MockModel>() {
		@Override
		public int getViewTypeCount() {
				return 2;
		}

		@Override
		public int getItemViewType(int position, MockModel mockModel) {
			if (position % 2 == 0) {
				return 0;
			}
			return 1;
		}

		@Override
		public int getLayoutId(int viewType) {
			if (viewType == 0) {
				return R.layout.item_type1;
			}
			return R.layout.item_type2;
		}
	};
}

Then:
multiAdapter = new MultipleAdapter(getContext(), models, null);
If using RecyclerView, you can also use class SimpleMulItemViewType:

mAdapter = new MultipleAdapter(getContext(), models, new SimpleMulItemViewType<MockModel>() {
	@Override
	public int getItemViewType(int position, MockModel mockModel) {
		if (position % 2 == 0) {
			return 0;
		}
		return 1;
	}

	@Override
	public int getLayoutId(int viewType) {
		if (viewType == 0) {
			return R.layout.item_type1;
		}
		return R.layout.item_type2;
	}
});
recyclerView.setAdapter(mAdapter);

Load animation:

Open default animation:
adapter.enableLoadAnimation();
or
adapter.enableLoadAnimation(long duration, new SlideInBottomAnimation());
if you want to show animation when item shows each time:
adapter.setOnlyOnce(false);
Note that you can set custom animation by implementing BaseAnimation.

Welcome to submit PRs and open issues! : )

License

Copyright 2016-2018 byteam.org.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].