/* * Created by LuaView. * Copyright (c) 2017, Alibaba Group. All rights reserved. * * This source code is licensed under the MIT. * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. */ package com.taobao.luaview.view; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.RecyclerView; import com.taobao.luaview.userdata.list.UDRefreshRecyclerView; import com.taobao.luaview.userdata.ui.UDView; import com.taobao.luaview.util.LuaViewUtil; import com.taobao.luaview.view.interfaces.ILVRecyclerView; import org.luaj.vm2.Globals; import org.luaj.vm2.LuaValue; import org.luaj.vm2.Varargs; import java.util.ArrayList; /** * LuaView - Refresh Recycler View * * @author song * @date 15/8/20 */ public class LVRefreshRecyclerView extends SwipeRefreshLayout implements ILVRecyclerView { //adapter private LVRecyclerView mRecyclerView; public LVRefreshRecyclerView(Globals globals, LuaValue metaTable, Varargs varargs) { super(globals.getContext()); this.mRecyclerView = LVRecyclerView.createVerticalView(globals, metaTable, varargs, new UDRefreshRecyclerView(this, globals, metaTable, varargs)); init(globals); } private void init(Globals globals) { globals.saveContainer(mRecyclerView); this.addView(mRecyclerView, LuaViewUtil.createRelativeLayoutParamsMM()); globals.restoreContainer(); if (!globals.isRefreshContainerEnable) { this.setEnabled(false); } else { ((UDRefreshRecyclerView) getUserdata()).initPullRefresh(); } } @Override public void setVerticalScrollBarEnabled(boolean horizontalScrollBarEnabled) { if (mRecyclerView != null) { mRecyclerView.setVerticalScrollBarEnabled(horizontalScrollBarEnabled); } } @Override public boolean isVerticalScrollBarEnabled() { return mRecyclerView != null ? mRecyclerView.isVerticalScrollBarEnabled() : true; } /** * 停止刷新 */ public void startPullDownRefreshing() { setRefreshing(true); } /** * 停止刷新 */ public void stopPullDownRefreshing() { setRefreshing(false); } public LVRecyclerView getRecyclerView() { return mRecyclerView; } @Override public UDView getUserdata() { return mRecyclerView != null ? mRecyclerView.getUserdata() : null; } @Override public RecyclerView.Adapter getLVAdapter() { return mRecyclerView != null ? mRecyclerView.getLVAdapter() : null; } @Override public void setChildNodeViews(ArrayList<UDView> childNodeViews) { } }