1.SelectRecyclerVie:RecycleView封裝類腋腮,多選單選雀彼,同RecyclerView的用法一樣
-
效果圖
image.png
第一步:導(dǎo)包:
compile 'cn.yc:YCRecycleViewLib:1.1'
第二步:設(shè)置適配器(注:適配器繼承SelectRecyclerViewAdapter)
private void initRecycleView() {
selectView.setLayoutManager(new GridLayoutManager(this, 4));
adapter = new SelectFollowAdapter(this, lists);
selectView.setAdapter(adapter);
//下劃線
SpaceViewItemLine itemDecoration = new SpaceViewItemLine(SizeUtils.dp2px(5));
itemDecoration.setPaddingEdgeSide(false);
itemDecoration.setPaddingStart(false);
itemDecoration.setPaddingHeaderFooter(false);
selectView.addItemDecoration(itemDecoration);
}
2.CommonTabLayout: //導(dǎo)航欄,可用于主頁的底部導(dǎo)航
(用ViewPager和CommonTabLayout實(shí)現(xiàn)底部導(dǎo)航)
- 使用的額外方法
// commonTabLayout.showDot(1);//顯示紅點(diǎn)即寡,參數(shù)代表哪個(gè)導(dǎo)航顯示
// commonTabLayout.showMsg(1,1);//放qq徊哑、微信顯示有幾條未讀信息,第一個(gè)參數(shù)是需要顯示的底部位置聪富,第二個(gè)蠶食是顯示的條數(shù)
// commonTabLayout.setMsgMargin(1, 2, 2); //顯示紅點(diǎn)信息位置
// commonTabLayout.hideMsg(1);//隱藏未讀消息莺丑,參數(shù)代表哪個(gè)導(dǎo)航隱藏
第一步:導(dǎo)包:
compile 'com.flyco.tablayout:FlycoTabLayout_Lib:2.1.0@aar'
第二步:布局引用
<com.flyco.tablayout.CommonTabLayout
android:id="@+id/ctl_table"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#90ffffff"
tl:tl_iconHeight="23dp"
tl:tl_iconWidth="23dp"
tl:tl_indicator_color="#2C97DE"
tl:tl_indicator_height="0dp"
tl:tl_textSelectColor="#2C97DE"
tl:tl_textUnselectColor="#66000000"
tl:tl_textsize="12sp"
tl:tl_underline_color="#DDDDDD"
tl:tl_underline_height="1dp"/>
第三步:在res/values目錄下新加arrays.xml文件,將首頁底部導(dǎo)航的選中與未選擇的圖片和文字以分組的形式寫進(jìn)去
<!--首頁底部導(dǎo)航欄的標(biāo)題墩蔓,未選中時(shí)-->
<integer-array name="main_tab_un_select">
<item name="tab_home">@drawable/tab_home_unselect</item>
<item name="tab_find">@drawable/tab_speech_unselect</item>
<item name="tab_data">@drawable/tab_contact_unselect</item>
<item name="tab_me">@drawable/tab_more_unselect</item>
</integer-array>
<!--首頁底部導(dǎo)航欄的標(biāo)題梢莽,選中時(shí)-->
<integer-array name="main_tab_select">
<item name="tab_home">@drawable/tab_home_select</item>
<item name="tab_find">@drawable/tab_speech_select</item>
<item name="tab_data">@drawable/tab_contact_select</item>
<item name="tab_me">@drawable/tab_more_select</item>
</integer-array>
<!--首頁底部導(dǎo)航欄文字-->
<string-array name="main_title">
<item>首頁</item>
<item>數(shù)據(jù)</item>
<item>工具</item>
<item>更多</item>
</string-array>
第三步:定義實(shí)體類用于存放arrays xml中的資源:
(實(shí)體類實(shí)現(xiàn)CustomTabEntity 接口)
public class TabEntity implements CustomTabEntity {
public String title;
public int selectedIcon;
public int unSelectedIcon;
public TabEntity(String title, int selectedIcon, int unSelectedIcon) {
this.title = title;
this.selectedIcon = selectedIcon;
this.unSelectedIcon = unSelectedIcon;
}
@Override
public String getTabTitle() {
return title;
}
@Override
public int getTabSelectedIcon() {
return selectedIcon;
}
@Override
public int getTabUnselectedIcon() {
return unSelectedIcon;
}
}
第四步:獲取arrays xml文件下的資源:
public ArrayList<CustomTabEntity> getTabEntity() {
ArrayList<CustomTabEntity> mTabEntities = new ArrayList<>();
TypedArray mIconUnSelectIds = activity.getResources().obtainTypedArray(R.array.main_tab_un_select);
TypedArray mIconSelectIds = activity.getResources().obtainTypedArray(R.array.main_tab_select);
String[] mainTitles = activity.getResources().getStringArray(R.array.main_title);
for (int i = 0; i < mainTitles.length; i++) {
int unSelectId = mIconUnSelectIds.getResourceId(i, R.drawable.tab_home_unselect);
int selectId = mIconSelectIds.getResourceId(i, R.drawable.tab_home_select);
mTabEntities.add(new TabEntity(mainTitles[i],selectId , unSelectId));
}
mIconUnSelectIds.recycle();
mIconSelectIds.recycle();
return mTabEntities;
}
第五步:設(shè)置底部導(dǎo)航以及初始化ViewPager:
ArrayList<CustomTabEntity> mTabEntities = presenter.getTabEntity();
(CommonTabLayout) ctlTable.setTabData(mTabEntities);
/**
* 初始化ViewPager數(shù)據(jù)
*/
private void initViewPager() {
List<Fragment> fragments = new ArrayList<>();
HomeFragment homeFragment = new HomeFragment();
FindFragment findFragment = new FindFragment();
DataFragment otherFragment = new DataFragment();
MeFragment meFragment = new MeFragment();
fragments.add(homeFragment);
fragments.add(findFragment);
fragments.add(otherFragment);
fragments.add(meFragment);
BasePagerAdapter adapter = new BasePagerAdapter(getSupportFragmentManager(), fragments);
vpHome.setAdapter(adapter);
vpHome.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
ctlTable.setCurrentTab(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
vpHome.setOffscreenPageLimit(4);
vpHome.setCurrentItem(0);
}
public class BasePagerAdapter extends FragmentPagerAdapter {
private List<?> mFragment;
private List<String> mTitleList;
/**
* 普通,主頁使用
*/
public BasePagerAdapter(FragmentManager fm, List<?> mFragment) {
super(fm);
this.mFragment = mFragment;
}
/**
* 接收首頁傳遞的標(biāo)題
*/
public BasePagerAdapter(FragmentManager fm, List<?> mFragment, List<String> mTitleList) {
super(fm);
this.mFragment = mFragment;
this.mTitleList = mTitleList;
}
@Override
public Fragment getItem(int position) {
return (Fragment) mFragment.get(position);
}
@Override
public int getCount() {
return mFragment.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
}
/**
* 首頁顯示title奸披,每日推薦等..
* 若有問題昏名,移到對應(yīng)單獨(dú)頁面
*/
@Override
public CharSequence getPageTitle(int position) {
if (mTitleList != null) {
return mTitleList.get(position);
} else {
return "";
}
}
public void addFragmentList(List<?> fragment) {
this.mFragment.clear();
this.mFragment = null;
this.mFragment = fragment;
notifyDataSetChanged();
}
}
3.滑動(dòng)卡片的效果
-
效果圖
image.png
第一步:導(dǎo)包:
compile 'cn.yc:YCCardViewLib:1.2'
第二步:布局文件
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.ns.yc.yccardviewlib.CardViewLayout
android:id="@+id/cardview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
第三步:實(shí)現(xiàn)效果(pictures是圖片地址集合)
private void initCardVioew(CardViewLayout cardView) {
cardView.setAdapter(new CardViewLayout.Adapter() {
@Override
public int getLayoutId() {
return R.layout.card_item;
}
@Override
public void bindView(View view, int index) {
ViewHolder holder = (ViewHolder) view.getTag();
if (holder == null) {
holder = new ViewHolder();
holder.imageView = (ImageView) view.findViewById(R.id.image);
view.setTag(holder);
}
if (pictures.size() > 0) {
loadImgByPicassoWithRound(CardViewActivity.this, pictures.get(index), 6, R.mipmap.ic_launcher, holder.imageView);
}
}
@Override
public int getItemCount() {
return pictures.size();
}
class ViewHolder {
ImageView imageView;
}
});
}
4.跑馬燈效果(可以自動(dòng)顯示不同的標(biāo)題)
image.png
第一步:自定義view
public class MarqueeView extends ViewFlipper {
private Context mContext;
private List<? extends CharSequence> notices;
private boolean isSetAnimDuration = false;
private OnItemClickListener onItemClickListener;
private int interval = 2000;
private int animDuration = 500;
private int textSize = 14;
private int textColor = 0xffffffff;
private boolean singleLine = false;
private int gravity = Gravity.LEFT | Gravity.CENTER_VERTICAL;
private static final int TEXT_GRAVITY_LEFT = 0, TEXT_GRAVITY_CENTER = 1, TEXT_GRAVITY_RIGHT = 2;
public MarqueeView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs, 0);
}
private void init(Context context, AttributeSet attrs, int defStyleAttr) {
this.mContext = context;
if (notices == null) {
notices = new ArrayList<>();
}
TypedArray typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.MarqueeViewStyle, defStyleAttr, 0);
interval = typedArray.getInteger(R.styleable.MarqueeViewStyle_mvInterval, interval);
isSetAnimDuration = typedArray.hasValue(R.styleable.MarqueeViewStyle_mvAnimDuration);
singleLine = typedArray.getBoolean(R.styleable.MarqueeViewStyle_mvSingleLine, false);
animDuration = typedArray.getInteger(R.styleable.MarqueeViewStyle_mvAnimDuration, animDuration);
if (typedArray.hasValue(R.styleable.MarqueeViewStyle_mvTextSize)) {
textSize = (int) typedArray.getDimension(R.styleable.MarqueeViewStyle_mvTextSize, textSize);
textSize = px2sp(mContext, textSize);
}
textColor = typedArray.getColor(R.styleable.MarqueeViewStyle_mvTextColor, textColor);
int gravityType = typedArray.getInt(R.styleable.MarqueeViewStyle_mvGravity, TEXT_GRAVITY_LEFT);
switch (gravityType) {
case TEXT_GRAVITY_CENTER:
gravity = Gravity.CENTER;
break;
case TEXT_GRAVITY_RIGHT:
gravity = Gravity.RIGHT | Gravity.CENTER_VERTICAL;
break;
}
typedArray.recycle();
setFlipInterval(interval);
}
// 根據(jù)公告字符串啟動(dòng)輪播
public void startWithText(final String notice) {
if (TextUtils.isEmpty(notice)) return;
getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
getViewTreeObserver().removeGlobalOnLayoutListener(this);
startWithFixedWidth(notice, getWidth());
}
});
}
// 根據(jù)公告字符串列表啟動(dòng)輪播
public void startWithList(List<? extends CharSequence> notices) {
setNotices(notices);
start();
}
// 根據(jù)寬度和公告字符串啟動(dòng)輪播
private void startWithFixedWidth(String notice, int width) {
int noticeLength = notice.length();
int dpW = px2dip(mContext, width);
int limit = dpW / textSize;
if (dpW == 0) {
throw new RuntimeException("Please set MarqueeView width !");
}
List list = new ArrayList();
if (noticeLength <= limit) {
list.add(notice);
} else {
int size = noticeLength / limit + (noticeLength % limit != 0 ? 1 : 0);
for (int i = 0; i < size; i++) {
int startIndex = i * limit;
int endIndex = ((i + 1) * limit >= noticeLength ? noticeLength : (i + 1) * limit);
list.add(notice.substring(startIndex, endIndex));
}
}
notices.addAll(list);
start();
}
// 啟動(dòng)輪播
public boolean start() {
if (notices == null || notices.size() == 0) return false;
removeAllViews();
resetAnimation();
for (int i = 0; i < notices.size(); i++) {
final TextView textView = createTextView(notices.get(i), i);
final int finalI = i;
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(finalI, textView);
}
}
});
addView(textView);
}
if (notices.size() > 1) {
startFlipping();
} else {
stopFlipping();
}
return true;
}
private void resetAnimation(){
clearAnimation();
Animation animIn = AnimationUtils.loadAnimation(mContext, R.anim.anim_marquee_in);
if (isSetAnimDuration) animIn.setDuration(animDuration);
setInAnimation(animIn);
Animation animOut = AnimationUtils.loadAnimation(mContext, R.anim.anim_marquee_out);
if (isSetAnimDuration) animOut.setDuration(animDuration);
setOutAnimation(animOut);
}
// 創(chuàng)建ViewFlipper下的TextView
private TextView createTextView(CharSequence text, int position) {
TextView tv = new TextView(mContext);
tv.setGravity(gravity);
tv.setText(text);
tv.setTextColor(textColor);
tv.setTextSize(textSize);
tv.setSingleLine(singleLine);
tv.setTag(position);
return tv;
}
public int getPosition() {
return (int) getCurrentView().getTag();
}
public List<? extends CharSequence> getNotices() {
return notices;
}
public void setNotices(List<? extends CharSequence> notices) {
this.notices = notices;
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
public interface OnItemClickListener {
void onItemClick(int position, TextView textView);
}
// 將px值轉(zhuǎn)換為dip或dp值,保證尺寸大小不變
public int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
// 將dip或dp值轉(zhuǎn)換為px值阵面,保證尺寸大小不變
public int dip2px(Context context, float dipValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}
// 將px值轉(zhuǎn)換為sp值轻局,保證文字大小不變
public int px2sp(Context context, float pxValue) {
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (pxValue / fontScale + 0.5f);
}
}
第二步:布局引用
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal"
android:padding="10dp"
android:gravity="center_vertical"
android:background="@android:color/white">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/holo_red_dark"
android:textSize="20sp"
android:textStyle="bold"
android:text="精選"/>
<View
android:layout_width="5dp"
android:layout_height="25dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:layout_marginLeft="10dp"
android:background="@android:color/holo_red_dark"/>
<!--上下滾動(dòng)TextView-->
<com.maindemo.vlayout.view.MarqueeView
android:id="@+id/marqueeView"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_gravity="center_vertical"
app:paddingStart="0dp"
app:mvAnimDuration="1000"
app:mvInterval="2000"
app:mvTextColor="#464C4E"
app:mvTextSize="16sp"
app:mvSingleLine="true"/>
</LinearLayout>
第三步:設(shè)置適配
marqueeView.startWithList(list);(list是數(shù)據(jù)集合)
//設(shè)置點(diǎn)擊事件
marqueeView.setOnItemClickListener
5.阿里巴巴布局開源庫VLayout(可以仿天貓?zhí)詫毜膹?fù)雜布局)(mvp模式)
image.png
可以參照這個(gè)簡書文章http://www.reibang.com/p/067abf64ed40
第一步:導(dǎo)包
compile('com.alibaba.android:vlayout:1.2.2@aar') {
transitive = true
}
第二步:view層:主要是寫一個(gè)接口,接口中寫需要更新ui的操作的方法
public interface IView {
//設(shè)置輪播圖
void setBanner(BannerView bannerView, List<String>pictures);
//設(shè)置九宮格的點(diǎn)擊
void setClick(int position);
//設(shè)置跑馬燈的點(diǎn)擊
void setMarqueeClick(int position);
//設(shè)置查看更多的點(diǎn)擊
void setTitleMoreClick(int position);
}
第三步:preserent層:定義一個(gè)接口样刷,寫需要初始化數(shù)據(jù)的操作方法仑扑;然后寫一個(gè)實(shí)現(xiàn)類實(shí)現(xiàn)這個(gè)接口,重寫相應(yīng)方法置鼻,在具體方法中做相關(guān)請求數(shù)據(jù)的操作镇饮,同時(shí)在preserent的實(shí)現(xiàn)類中需要用構(gòu)造方法將view引用過來,方便數(shù)據(jù)請求完后調(diào)用view接口的方法做更新ui的操作箕母。
- 接口
public interface IVPresenter {
DelegateAdapter initRecycler( RecyclerView recyclerView);
BaseAdapter initBanner();
BaseAdapter initGvMenu();
BaseAdapter initMarquee();
BaseAdapter initTitle(String title);
}
- 實(shí)現(xiàn)類
public class IVPresenterImpl implements IVPresenter {
private IView iView;
private Context context;
public IVPresenterImpl(Context context, IView view) {
this.iView = view;
this.context = context;
}
/**
* 獲取DelegateAdapter
*/
@Override
public DelegateAdapter initRecycler(RecyclerView recyclerView) {
//創(chuàng)建VirtualLayoutManager
VirtualLayoutManager virtualLayoutManager = new VirtualLayoutManager(context);
recyclerView.setLayoutManager(virtualLayoutManager);
//設(shè)置回收復(fù)用池大小(如果一屏內(nèi)相同View個(gè)數(shù)比較多盒让,需要設(shè)置一個(gè)合適的大小梅肤,放在來回滾動(dòng)時(shí)重新創(chuàng)建view)
RecyclerView.RecycledViewPool pool = new RecyclerView.RecycledViewPool();
recyclerView.setRecycledViewPool(pool);
pool.setMaxRecycledViews(0, 20);
//設(shè)置適配器
DelegateAdapter delegateAdapter = new DelegateAdapter(virtualLayoutManager, true);
recyclerView.setAdapter(delegateAdapter);
return delegateAdapter;
}
/**
* 初始化輪播圖
*/
@Override
public BaseAdapter initBanner() {
final List
<String> icons = new ArrayList<>();
icons.add("http://pic4.nipic.com/20091217/3885730_124701000519_2.jpg");
icons.add("http://img.zcool.cn/community/01711b59426ca1a8012193a31e5398.gif");
icons.add("http://img.taopic.com/uploads/allimg/120727/201995-120HG1030762.jpg");
icons.add("http://img.zcool.cn/community/0142135541fe180000019ae9b8cf86.jpg@1280w_1l_2o_100sh.png");
icons.add("http://news.cnhubei.com/ctjb/ctjbsgk/ctjb40/200808/W020080822221006461534.jpg");
icons.add("http://img.zcool.cn/community/01fd6756f3f8c732f875a944272b7b.jpg");
return new BaseAdapter(new LinearLayoutHelper(), 1, R.layout.banner, this, context, 1) {
@Override
public void onBindViewHolder(BaseViewHolder holder, int position) {
super.onBindViewHolder(holder, position);
//綁定數(shù)據(jù)
BannerView bannerView = holder.getView(R.id.banner);
iView.setBanner(bannerView, icons);
}
};
}
/**
* 初始化九宮格
*
* @return
*/
@Override
public BaseAdapter initGvMenu() {
final List<Integer> imagers = new ArrayList<>();
TypedArray iconArraty = context.getResources().obtainTypedArray(R.array.gv_menu);
final String[] textArray = context.getResources().getStringArray(R.array.text);
for (int i = 0; i < textArray.length; i++) {
imagers.add(iconArraty.getResourceId(i, R.mipmap.ic_category_2));
}
iconArraty.recycle();
GridLayoutHelper gridLayoutHelper = new GridLayoutHelper(4);
gridLayoutHelper.setPadding(0, 16, 0, 16);
gridLayoutHelper.setVGap(16);//控制子元素之間的垂直間距
gridLayoutHelper.setHGap(0);//控制子元素之間的水平間距
gridLayoutHelper.setBgColor(Color.WHITE);
return new BaseAdapter(gridLayoutHelper, imagers.size(), R.layout.gv_item, this, context, 2) {
@Override
public void onBindViewHolder(BaseViewHolder holder, final int position) {
super.onBindViewHolder(holder, position);
holder.setBackgroundRes(R.id.circle_image, imagers.get(position));
holder.setText(R.id.text, textArray[position]);
LinearLayout ll = holder.getView(R.id.ll);
ll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
iView.setClick(position);
}
});
}
};
}
/**
* 初始化跑馬燈效果
*
* @retur
*/
@Override
public BaseAdapter initMarquee() {
final List<String> titles = new ArrayList<>();
titles.add("1.堅(jiān)持讀書,寫作邑茄,源于內(nèi)心的動(dòng)力姨蝴!");
titles.add("2.歡迎訂閱喜馬拉雅聽書!");
return new BaseAdapter(new LinearLayoutHelper(), 1, R.layout.marquee, this, context, 3) {
@Override
public void onBindViewHolder(BaseViewHolder holder, final int position) {
super.onBindViewHolder(holder, position);
MarqueeView marqueeView = holder.getView(R.id.marqueeView);
marqueeView.startWithList(titles);
marqueeView.setOnItemClickListener(new MarqueeView.OnItemClickListener() {
@Override
public void onItemClick(int position, TextView textView) {
iView.setMarqueeClick(position);
}
});
}
};
}
/**
* 初始化標(biāo)題
*
* @return
*/
@Override
public BaseAdapter initTitle(final String title) {
return new BaseAdapter(new LinearLayoutHelper(), 1, R.layout.title, this, context, 4) {
@Override
public void onBindViewHolder(BaseViewHolder holder, final int position) {
super.onBindViewHolder(holder, position);
holder.setText(R.id.title, title);
holder.getView(R.id.more).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
iView.setTitleMoreClick(position);
}
});
}
};
}
第四步:activity做更新ui的操作肺缕,首先activity必須實(shí)現(xiàn)view層的接口左医,然后在activity中必須創(chuàng)建preserent層的對象,為了調(diào)用preserent層實(shí)現(xiàn)類的具體方法同木;
public class VLayoutActivity extends AppCompatActivity implements IView {
private RecyclerView recyclerView;
private IVPresenter presenter;
private BannerView bannerView;
//存放各個(gè)模塊的適配器
List<DelegateAdapter.Adapter> mAdapter = new LinkedList<>();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_vlayout);
recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
presenter = new IVPresenterImpl(this, this);
initRecyclerView();
}
private void initRecyclerView() {
//獲取DelegateAdapter
DelegateAdapter delegateAdapter = presenter.initRecycler(recyclerView);
//初始化輪播圖
BaseAdapter bannerAdapter = presenter.initBanner();
mAdapter.add(bannerAdapter);
//初始化九宮格
BaseAdapter gvMenuAdapter = presenter.initGvMenu();
mAdapter.add(gvMenuAdapter);
//初始化跑馬燈效果
BaseAdapter marqueeAdapter = presenter.initMarquee();
mAdapter.add(marqueeAdapter);
//初始化標(biāo)題
BaseAdapter titleAdapter = presenter.initTitle("豆瓣評(píng)分");
mAdapter.add(titleAdapter);
//初始化list
delegateAdapter.setAdapters(mAdapter);
}
/**
* 設(shè)置輪播圖
*/
@Override
public void setBanner(BannerView bannerView, List<String> pictures) {
this.bannerView = bannerView;
bannerView.setHintGravity(2);//設(shè)置位置
bannerView.setAnimationDuration(1000);//設(shè)置viewPager滑動(dòng)動(dòng)畫持續(xù)時(shí)間
bannerView.setPlayDelay(2000);//設(shè)置輪播時(shí)間
bannerView.setAdapter(new BannerAdapter(VLayoutActivity.this, pictures));
}
/**
* 九宮格點(diǎn)擊事件
*
* @param position
*/
@Override
public void setClick(int position) {
Toast.makeText(this, "點(diǎn)擊了" + position, Toast.LENGTH_SHORT).show();
}
/**
* 初始化跑馬燈效果
*
* @param position
*/
@Override
public void setMarqueeClick(int position) {
Toast.makeText(this, "點(diǎn)擊了" + position, Toast.LENGTH_SHORT).show();
}
/**
* 初始化標(biāo)題
*
* @param position
*/
@Override
public void setTitleMoreClick(int position) {
Toast.makeText(this, "點(diǎn)擊了標(biāo)題", Toast.LENGTH_SHORT).show();
}
@Override
protected void onPause() {
super.onPause();
if (bannerView != null) {
bannerView.pause();
}
}
@Override
protected void onResume() {
super.onResume();
if (bannerView != null) {
bannerView.resume();
}
}
}