scrollView默认显示最下方内容

ScrollView 有一个方法scollTo(int, int)用来指定滚动条的位置。如果你尝试过,你会发现它是无效的。

因为scollTo()在Scrolliew内的内容加载完成后才能执行。所以我们这样设置滚动条的位置:


ScrollView mScrollView = findViewById(R.id.svid);

mScrollView.post(new Runnable() {  
    public void run() {  
        mScrollView.scrollTo(0, 1000);  
    }   
});  


scrollTo(int, int);方法生效啦。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在cocos2dx-lua中,可以使用ScrollView显示可视区域的内容,以提高游戏性能。实现方式如下: 1. 创建一个ScrollView,并设置其大小和位置。 ```lua local scrollView = ccui.ScrollView:create() scrollView:setContentSize(cc.size(500, 500)) scrollView:setPosition(cc.p(0, 0)) ``` 2. 设置ScrollView的滚动方向和滚动条位置。 ```lua scrollView:setDirection(ccui.ScrollViewDir.vertical) scrollView:setScrollBarPositionFromCorner(cc.p(7, 7)) ``` 3. 创建一个容器,用于存储要加载的内容。 ```lua local container = ccui.Layout:create() container:setContentSize(cc.size(500, 1000)) scrollView:addChild(container) ``` 4. 定义一个函数,用于加载每一项内容到容器中。 ```lua local function loadItem(index) local item = ccui.Text:create() item:setString("Item " .. index) item:setPosition(cc.p(250, 1000 - index * 50)) container:addChild(item) end ``` 5. 在ScrollView的回调函数中,根据滚动位置动态加载内容,并移除不在可视区域的内容项。 ```lua local function scrollViewEvent(sender, eventType) if eventType == ccui.ScrollviewEventType.scrolling then local pos = scrollView:getInnerContainer():getPosition() local top = scrollView:getContentSize().height local bottom = top - scrollView:getInnerContainerSize().height for i = container:getChildrenCount(), 1, -1 do local item = container:getChildren()[i] local itemPos = item:convertToWorldSpace(cc.p(0, 0)) if itemPos.y < 0 or itemPos.y > top then item:removeFromParent() end end if pos.y < bottom + 500 then for i = 1, 10 do loadItem(i) end end end end scrollView:addScrollViewEventListener(scrollViewEvent) ``` 这样,在滚动ScrollView时,只会显示可视区域内的内容,不在可视区域内的内容会被自动移除。通过移除不需要显示内容项,可以避免ScrollView中的内容过多导致游戏卡顿。可以根据实际需求调整每次加载的内容数量和内容项的布局样式,以及移除不需要显示内容项的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值