Android 在序列上滑动项目的RecyclerView动画
我想设置recyclerview的动画,以便按顺序添加项目(从右向左滑动),我的意思是,第一个项目开始滑动,然后当它在屏幕中间时,第二个项目开始滑动,依此类推 我尝试添加这个库(),但我不确定我是否犯了错误,或者它是否不能像这样工作 有什么想法吗 活动Android 在序列上滑动项目的RecyclerView动画,android,android-recyclerview,android-animation,Android,Android Recyclerview,Android Animation,我想设置recyclerview的动画,以便按顺序添加项目(从右向左滑动),我的意思是,第一个项目开始滑动,然后当它在屏幕中间时,第二个项目开始滑动,依此类推 我尝试添加这个库(),但我不确定我是否犯了错误,或者它是否不能像这样工作 有什么想法吗 活动 private ArrayList<OptionListItem> mOptionsList = new ArrayList<>(); private RecyclerView mRecyclerView;
private ArrayList<OptionListItem> mOptionsList = new ArrayList<>();
private RecyclerView mRecyclerView;
private OptionListAdapter mListAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mListAdapter = new OptionListAdapter(mOptionsList);
mRecyclerView = (RecyclerView) findViewById(R.id.options_list);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mRecyclerView.setAdapter(mListAdapter);
mRecyclerView.setItemAnimator(new SlideInLeftAnimator());
addOptionsToList();
}
private void addOptionsToList() {
OptionListItem listItem = new OptionListItem(
ScanActivity.class,
"Controle",
"Efetue o bloqueio/desbloqueio",
R.drawable.ic_lock,
R.drawable.colored_bar_bg1
);
mListAdapter.add(listItem);
listItem = new OptionListItem(
ScanActivity.class,
"Opção 2",
"Descrição da opção 2",
R.drawable.ic_car,
R.drawable.colored_bar_bg2
);
mListAdapter.add(listItem);
listItem = new OptionListItem(
ScanActivity.class,
"Opção 3",
"Descrição da opção 3",
R.drawable.ic_lightbulb,
R.drawable.colored_bar_bg4
);
mListAdapter.add(listItem);
}
private ArrayList mOptionsList=new ArrayList();
私人回收视图mRecyclerView;
私人选择适配器mListAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
mListAdapter=新的OptionListAdapter(mOptionsList);
mRecyclerView=(RecyclerView)findViewById(R.id.options\u列表);
RecyclerView.LayoutManager mLayoutManager=新的LinearLayoutManager(getApplicationContext());
mRecyclerView.setLayoutManager(mllayoutmanager);
setItemAnimator(新的DefaultItemAnimator());
mRecyclerView.setAdapter(mListAdapter);
setItemAnimator(新的SlideInLeftAnimator());
addOptionsToList();
}
私有void addOptionsToList(){
OptionListItem listItem=新建OptionListItem(
ScanActivity.class,
“控制”,
“Efetue o bloqueio/desbloqueio”,
R.可拉拔ic_锁,
R.可拉拔的彩色钢筋\u bg1
);
mListAdapter.add(列表项);
listItem=新选项列表项(
ScanActivity.class,
“Opço 2”,
“描述第二次行动”,
R.drawable.ic_车,
R.可拉拔的彩色钢筋\u bg2
);
mListAdapter.add(列表项);
listItem=新选项列表项(
ScanActivity.class,
“Opço 3”,
“描述第三次行动”,
R.drawable.ic_灯泡,
R.可拉拔的彩色钢筋\u bg4
);
mListAdapter.add(列表项);
}
适配器
public class OptionListAdapter extends RecyclerView.Adapter<OptionListAdapter.OptionListItemHolder> {
private final ArrayList<OptionListItem> optionList;
public OptionListAdapter(ArrayList<OptionListItem> optionList) {
this.optionList = optionList;
}
@Override
public OptionListItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View item = LayoutInflater.from(parent.getContext())
.inflate(R.layout.options_list_item_layout, parent, false);
return new OptionListItemHolder(item);
}
@Override
public void onBindViewHolder(OptionListItemHolder holder, int position) {
OptionListItem item = optionList.get(position);
holder.cardTitle.setText(item.getTitle());
holder.cardSubtitle.setText(item.getSubtitle());
holder.icon.setImageResource(item.getIcon());
holder.coloredBar.setBackgroundResource(item.getBar());
holder.activity = item.getActivity();
}
public void add(OptionListItem item) {
int position = getItemCount();
this.optionList.add(position, item);
notifyItemInserted(position);
}
@Override
public int getItemCount() {
return optionList.size();
}
public class OptionListItemHolder extends RecyclerView.ViewHolder {
private TextView cardTitle;
private TextView cardSubtitle;
private ImageView icon;
private View coloredBar;
private View optionBackground;
private Class<?> activity;
public OptionListItemHolder(View v) {
super(v);
cardTitle = (TextView)v.findViewById(R.id.card_title);
cardSubtitle = (TextView)v.findViewById(R.id.card_subtitle);
icon = (ImageView)v.findViewById(R.id.icon);
coloredBar = v.findViewById(R.id.colored_bar);
optionBackground = v.findViewById(R.id.option_background_container);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(view.getContext(), activity);
view.getContext().startActivity(intent);
}
});
}
}
}
公共类OptionListAdapter扩展了RecyclerView.Adapter{
私人最终ArrayList optionList;
公共OptionListAdapter(ArrayList optionList){
this.optionList=optionList;
}
@凌驾
公共选项ListItemHolder onCreateViewHolder(视图组父级,int-viewType){
视图项=LayoutInflater.from(parent.getContext())
.充气(R.layout.options\u list\u item\u layout,parent,false);
返回新的OptionListItemHolder(项目);
}
@凌驾
BindViewHolder上的公共无效(OptionListItemHolder,int位置){
OptionListItem=optionList.get(位置);
holder.cardTitle.setText(item.getTitle());
holder.cardstitle.setText(item.getSubtitle());
holder.icon.setImageResource(item.getIcon());
holder.coloredBar.setBackgroundResource(item.getBar());
holder.activity=item.getActivity();
}
公共作废添加(选项列表项){
int position=getItemCount();
此.optionList.add(位置、项目);
(位置);
}
@凌驾
public int getItemCount(){
返回optionList.size();
}
公共类OptionListItemHolder扩展了RecyclerView.ViewHolder{
私有文本视图卡片标题;
私人文本视图卡字幕;
私有图像视图图标;
私有视图彩色条;
私有视图选项背景;
私人课堂活动;
公共选项列表持有人(视图五){
超级(五);
cardTitle=(TextView)v.findViewById(R.id.card\u title);
cardSubtitle=(TextView)v.findViewById(R.id.card\u subtitle);
icon=(ImageView)v.findViewById(R.id.icon);
彩色条=v.findViewById(R.id.彩色条);
optionBackground=v.findviewbyd(R.id.option\u background\u container);
v、 setOnClickListener(新视图。OnClickListener(){
@凌驾
公共void onClick(视图){
Intent Intent=新的意图(view.getContext(),activity);
view.getContext().startActivity(intent);
}
});
}
}
}
运行代码时会发生什么?你有任何动画吗?它一次加载所有东西,没有动画。