/*
* 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.userdata.ui;
import android.view.View;
import android.view.ViewGroup;
import com.taobao.luaview.util.LuaUtil;
import com.taobao.luaview.view.LVHorizontalScrollView;
import com.taobao.luaview.view.LVViewGroup;
import org.luaj.vm2.Globals;
import org.luaj.vm2.LuaValue;
/**
* 容器类-ListView,模拟OC的section分区实现,Section顺序排列
*
* @author song
* @date 15/8/20
*/
public class UDHorizontalScrollView extends UDViewGroup<LVHorizontalScrollView> {
public UDHorizontalScrollView(LVHorizontalScrollView view, Globals globals, LuaValue metaTable, LuaValue initParams) {
super(view, globals, metaTable, initParams);
}
/**
* 获取容器view
* @return
*/
public ViewGroup getContainer(){
return getView() != null ? getView().getContainer() : null;
}
/**
* 调用 Cell 的某些方法
*
* @param method
* @param position
* @return
*/
private LuaValue callCellFunction(String method, LuaValue cellData, int position) {
return LuaUtil.callFunction(LuaUtil.getValue(initParams, method), cellData, LuaUtil.toLuaInt(position));
}
/**
* 滚动到某个位置
*
* @param x
* @param y
* @return
*/
public UDHorizontalScrollView smoothScrollTo(final int x, final int y) {
final LVHorizontalScrollView scrollView = getView();
if (scrollView != null) {
scrollView.smoothScrollTo(x, y);
}
return this;
}
/**
* 滚动dx and dy
*
* @param dx
* @param dy
* @return
*/
public UDHorizontalScrollView smoothScrollBy(final int dx, final int dy) {
final LVHorizontalScrollView scrollView = getView();
if (scrollView != null) {
scrollView.smoothScrollBy(dx, dy);
}
return this;
}
/**
* 滚动一页 direction (>0, <0)
*
* @param direction
* @return
*/
public UDHorizontalScrollView pageScroll(final int direction) {
final LVHorizontalScrollView scrollView = getView();
if (scrollView != null) {
if (direction > 0) {
scrollView.pageScroll(View.FOCUS_RIGHT);
} else if (direction < 0) {
scrollView.pageScroll(View.FOCUS_LEFT);
}
}
return this;
}
/**
* 滚动到底
*
* @param direction (>0, <0)
* @return
*/
public UDHorizontalScrollView fullScroll(final int direction) {
final LVHorizontalScrollView scrollView = getView();
if (scrollView != null) {
if (direction > 0) {
scrollView.fullScroll(View.FOCUS_RIGHT);
} else if (direction < 0) {
scrollView.fullScroll(View.FOCUS_LEFT);
}
}
return this;
}
}