mirror of
https://github.com/alibaba/Tangram-Android.git
synced 2026-10-17 05:07:05 +08:00
Merge branch 'develop'
This commit is contained in:
@@ -90,7 +90,7 @@ dependencies {
|
||||
compile 'com.android.support:recyclerview-v7:23.1.1@aar'
|
||||
compile 'com.android.support:support-v4:23.1.1@aar'
|
||||
compile 'com.android.support:support-annotations:23.1.1'
|
||||
compile 'com.alibaba.android:ultraviewpager:1.0.6.3@aar'
|
||||
compile 'com.alibaba.android:ultraviewpager:1.0.6.5@aar'
|
||||
compile('me.everything:overscroll-decor-android:1.0.1@aar') {
|
||||
transitive true
|
||||
exclude group: 'com.android.support', module: 'recyclerview-v7'
|
||||
|
||||
@@ -43,9 +43,11 @@ import com.tmall.wireless.tangram.core.service.ServiceManager;
|
||||
import com.tmall.wireless.tangram.dataparser.DataParser;
|
||||
import com.tmall.wireless.tangram.dataparser.IAdapterBuilder;
|
||||
import com.tmall.wireless.tangram.dataparser.concrete.BaseCardBinderResolver;
|
||||
import com.tmall.wireless.tangram.dataparser.concrete.BaseCellBinder;
|
||||
import com.tmall.wireless.tangram.dataparser.concrete.BaseCellBinderResolver;
|
||||
import com.tmall.wireless.tangram.dataparser.concrete.CardResolver;
|
||||
import com.tmall.wireless.tangram.eventbus.BusSupport;
|
||||
import com.tmall.wireless.tangram.structure.BaseCell;
|
||||
import com.tmall.wireless.tangram.structure.card.VVCard;
|
||||
import com.tmall.wireless.tangram.support.TimerSupport;
|
||||
import com.tmall.wireless.tangram.util.ImageUtils;
|
||||
@@ -209,6 +211,38 @@ public class BaseTangramEngine<T, C, L> implements ServiceManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* register cell after engine has been created
|
||||
* @param type
|
||||
* @param cellClz
|
||||
* @param viewClz
|
||||
* @param <V>
|
||||
*/
|
||||
public <V extends View> void registerCell(String type,
|
||||
@NonNull Class<? extends BaseCell> cellClz, @NonNull Class<V> viewClz) {
|
||||
registerCell(type, viewClz);
|
||||
MVHelper mMVHelper = getService(MVHelper.class);
|
||||
if (mMVHelper != null && mMVHelper.resolver() != null) {
|
||||
mMVHelper.resolver().registerCompatible(type, cellClz);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* register cell after engine has been created
|
||||
* @param type
|
||||
* @param viewClz
|
||||
* @param <V>
|
||||
*/
|
||||
public <V extends View> void registerCell(String type, @NonNull Class<V> viewClz) {
|
||||
BaseCellBinderResolver baseCellBinderResolver = getService(BaseCellBinderResolver.class);
|
||||
MVHelper mMVHelper = getService(MVHelper.class);
|
||||
if (baseCellBinderResolver != null && mMVHelper != null && mMVHelper.resolver() != null) {
|
||||
baseCellBinderResolver.register(type, new BaseCellBinder<>(viewClz, mMVHelper));
|
||||
mMVHelper.resolver().register(type, viewClz);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this when your activity is ready to destory to clear inner resource.
|
||||
*/
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
package com.tmall.wireless.tangram.structure;
|
||||
|
||||
import android.util.SparseArray;
|
||||
import com.tmall.wireless.tangram.Engine;
|
||||
import com.tmall.wireless.tangram.MVHelper;
|
||||
import com.tmall.wireless.tangram.core.service.ServiceManager;
|
||||
@@ -138,6 +139,8 @@ public class BaseCell<V extends View> extends ComponentLifecycle implements View
|
||||
|
||||
public boolean mIsExposed = false;
|
||||
|
||||
private SparseArray<Object> mTag;
|
||||
|
||||
public BaseCell() {
|
||||
objectId = sIsGenIds ? sIdGen.getAndIncrement() : 0;
|
||||
}
|
||||
@@ -332,4 +335,28 @@ public class BaseCell<V extends View> extends ComponentLifecycle implements View
|
||||
return extras;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* bind a tag to baseCell
|
||||
* @param key
|
||||
* @param value
|
||||
*/
|
||||
public void setTag(int key, Object value) {
|
||||
if (mTag == null) {
|
||||
mTag = new SparseArray<>();
|
||||
}
|
||||
mTag.put(key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* get a tag from baseCell
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
public Object getTag(int key) {
|
||||
if (mTag != null) {
|
||||
return mTag.get(key);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,6 +124,7 @@ public class BannerView extends RelativeLayout implements ViewPager.OnPageChange
|
||||
|
||||
public void setAdapter(PagerAdapter adapter) {
|
||||
mUltraViewPager.setAdapter(adapter);
|
||||
mUltraViewPager.disableAutoScroll();//reset timer when reuse
|
||||
mUltraViewPager.setOnPageChangeListener(this);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user