现在很多商城类的app经常会有一小段垂直轮播的公告,网上搜索了一下相关的内容,淘宝的首页有垂直头条
Github链接:
https://github.com/sfsheng0322/MarqueeView,在此感谢这位大腿。
使用方法也比较简单:xml里核心代码:
<comm.marqueeview.MarqueeView
android:id="@+id/marqueeview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
app:mvAnimDuration="500"
app:mvInterval="3000"
app:mvTextColor="#ff0000"
app:mvTextSize="14sp">
</comm.marqueeview.MarqueeView>
根布局添加一句:
xmlns:app="http://schemas.android.com/apk/res-auto"
关于下面属性的设置,可以自定义:
mvAnimDuration 动画执行时间(滚动速度,值越小,滚动速度越快)
mvInterval 翻页时间间隔(每隔多长时间滚动下一条)
mvTextSize 文字大小
mvTextColor 文字颜色
在Activity中的使用也很简单:
package com.example.lenovo.marqueeview;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
import comm.marqueeview.MarqueeView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MarqueeView marqueeView = (MarqueeView) findViewById(R.id.marqueeview);
List<String> info = new ArrayList<>();
info.add("公告内容1");
info.add("公告内容2");
info.add("公告内容3");
marqueeView.startWithList(info);
//每一项的点击事件监听
marqueeView.setOnItemClickListener(new MarqueeView.OnItemClickListener() {
@Override
public void onItemClick(int position, TextView textView) {
//执行需求的业务逻辑
Toast.makeText(MainActivity.this, "点击了第"+position+"条公告", Toast.LENGTH_SHORT).show();
}
});
}
}