话不多少先来看图,直截了当
现在想很多 京东淘宝的首页都有这样的效果
首先要在整个项目的build.gradle中添加依赖
allprojects { repositories { maven { url "https://jitpack.io" } ...... } }然后在module的 build.gradle中添加
compile 'com.github.Rowandjj:VerticalBannerView:1.0'
之后就可以使用了
VerticalBannerView的使用方法和listview差不太多首先需要一个Bean类
在这里随便写一个
public class Model { String title; String url; public Model(String title, String url) { this.title = title; this.url = url; } }这里写了两个属性一个是给用户看的标题一个可以是用户点击时候跳转的网址或者是别的
然后需要一个适配器
class SampleAdapter extends BaseBannerAdapter<Model>{ public SampleAdapter(List<Model> datas) { super(datas); } @Override public View getView(VerticalBannerView verticalBannerView) { return LayoutInflater.from(MainActivity.this).inflate(R.layout.item,null); } @Override public void setItem(View view, final Model model) { //给控件赋值 TextView title=view.findViewById(R.id.title); ImageView img=view.findViewById(R.id.img); title.setText(model.title); title.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,model.title,Toast.LENGTH_SHORT).show(); } }); } }
大家看到了这里的适配器需要一个泛型这个泛型就是我们写好的bean类
这个也是需要一个子布局来实现内部效果的 大家可以根据自己随便定义
然后需要一个集合来存放数据实例化一个list集合泛型的刚才写好的bean类
在布局中增加view的声明
<com.taobao.library.VerticalBannerView
android:id="@+id/banner_01"
android:layout_width="match_parent"
android:layout_height="40dp"
app:animDuration="900" ---->动画间隔900ms
app:gap="2000"/> ----->切换时长2000ms
然后实例化控件进行绑定
最后别忘了绑定数据之后还需要.start启动
之后还可以 调用.setData来更新数据 这里只需要重写一个list集合传进去
最后附上GitHub