Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在序列上滑动项目的RecyclerView动画_Android_Android Recyclerview_Android Animation - Fatal编程技术网

Android 在序列上滑动项目的RecyclerView动画

Android 在序列上滑动项目的RecyclerView动画,android,android-recyclerview,android-animation,Android,Android Recyclerview,Android Animation,我想设置recyclerview的动画,以便按顺序添加项目(从右向左滑动),我的意思是,第一个项目开始滑动,然后当它在屏幕中间时,第二个项目开始滑动,依此类推 我尝试添加这个库(),但我不确定我是否犯了错误,或者它是否不能像这样工作 有什么想法吗 活动 private ArrayList<OptionListItem> mOptionsList = new ArrayList<>(); private RecyclerView mRecyclerView;

我想设置recyclerview的动画,以便按顺序添加项目(从右向左滑动),我的意思是,第一个项目开始滑动,然后当它在屏幕中间时,第二个项目开始滑动,依此类推

我尝试添加这个库(),但我不确定我是否犯了错误,或者它是否不能像这样工作

有什么想法吗

活动

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);
}
});
}
}
}

运行代码时会发生什么?你有任何动画吗?它一次加载所有东西,没有动画。