Merge branch 'develop'

This commit is contained in:
longerian
2017-12-25 19:23:21 +08:00
4 changed files with 63 additions and 1 deletions
+1 -1
View File
@@ -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);
}