技术CTO-关注编程入门知识,提供编程入门教程

您的位置: 首页 > 移动开发 > android > 正文

scrollview起始位置不是顶部 如何设置

来源: 技术CTO 阅读:

为了解决scrollview和listview冲突  设置了listview的高度   结果进页面就不是在顶部了  如何才能解决该情况

`111
竟然都不会  哎··
= =! 为什么都是模糊的问题

scrollview.scrollTo(x,y);
listview.setSelection(int position);

试试这两个方法。。希望有点帮助。。ZZZZ
我还是有这个问题,帮忙顶个!
是scrollview里面嵌套了一个listview 我通过设置一个方法设置了listview的高度 现在的情况就是我进到这个界面的时候看到的不是最上面 而是中间 ,可以做出来的产品不能这样啊。。。。就得想办法让他显示出来的时候就是在最上面 
  scrollview.scrollTo(x,y);
 这个方法我试了   xy设置的没有任何效果啊  0,0  或者大数都试过了  无效  另外full什么的那个到最上面 最下面的方法也无效  无效就是可以执行 不报错  但是没效果   求解
是scrollview里面嵌套了一个listview 我通过设置一个方法设置了listview的高度 现在的情况就是我进到这个界面的时候看到的不是最上面 而是中间 ,可以做出来的产品不能这样啊。。。。就得想办法让他显示出来的时候就是在最上面  
  scrollview.scrollTo(x,y);
 这个方法我试了 xy设置的没有任何效果啊 0,0 或者大数都试过了 无效 另外full什么的那个到最上面 最下面的方法也无效 无效就是可以执行 不报错 但是没效果 求解
在百度上找了一个解决scrollview和listview冲突的例子  里面的意思是用linearlayout代替listview  中间的意思是说通过一个资源数组来初始化linearlayout列  这样就会出现很多行的效果  可是用到我这里好像不行  我这个adapter的数据是服务器上解析来的  无法确定大小  就不能使用这种初始化的方式来解决了   求解啊  怎么能让他显示出来的时候就是在最上面 
scrollview.scrollTo(x,y);
 我试了一下 可以将滚动条设置到顶部
引用楼主 yanjichaoo 的回复:
为了解决scrollview和listview冲突  设置了listview的高度   结果进页面就不是在顶部了  如何才能解决该情况


解决了
Runnable scrollViewRunable = new Runnable() {  
    @Override  
    public void run() {  
     ((ScrollView)findViewById(R.id.main_sv)).scrollTo(10, 10) ;
    }  
  };  

mHandler.post(scrollViewRunable);
我也遇到这个问题才找到这里,其实解决方法很简单,并不需要像楼上那样起个线程.只要在绘制好你ListView数据后,设置一下ScrollView:
((ScrollView)findViewById(R.id.main_sv)).scrollTo(10, 10) ;
即可.
原因就是Activity计算窗口的高度是在listview没有填充数据时候就完成了,所以ScrollView嵌套listview需要指定高度,否则就会按照layout中定义的默认高度计算.同样,设置scrollTo的位置也要在listview填充数据完成后调用.
楼主解决了吗?我现在也再纠结这个问题,和你说的一模一样,,求解啊
你好,请问楼主解决了该问题了吗?请赐教!求解
同样的问题,求解答
myScrollView.smoothScrollTo(0,20);
引用 14 楼  的回复:
myScrollView.smoothScrollTo(0,20);

14楼好用
14楼的方案能解决此问题。
14L  正解!
14L给力``
myScrollView.smoothScrollTo(0,20);无效时, 在代码里去掉listview的焦点 lv.setFocusable(false);
不太应该把ListView包含到ScrollerView里面,这不是一个好的做法。
首先是计算的ListView的高度是否准确(之前遇到过怎么算都不太准确,有点点误差)?还有就是设置完ListView的高度后,ListView里面itemView应该就无法复用了,也就是说ListView有多少个Item就会创建多少ItemView,会浪费挺多内存的。
我觉得比较合适的做法,应该是使用ListView的HeaderView或者FooterView来达到类似的效果。
引用 21 楼 TobyC 的回复:
不太应该把ListView包含到ScrollerView里面,这不是一个好的做法。
首先是计算的ListView的高度是否准确(之前遇到过怎么算都不太准确,有点点误差)?还有就是设置完ListView的高度后,ListView里面itemView应该就无法复用了,也就是说ListView有多少个Item就会创建多少ItemView,会浪费挺多内存的。
我觉得比较合适的做法,应该是使用ListView的HeaderView或者FooterView来达到类似的效果。
有时候HeaderView是替代不了的.
20楼暂时解决方案是完美的.
终于找到这个方法了,找不好久,14楼的确实好用。。。
14L果然正解
留名标记下,下次会用到
20L正解myScrollView.smoothScrollTo(0,20);无效时, 在代码里去掉listview的焦点 lv.setFocusable(false);
我也遇到同样的问题,14楼的完全正解!!!!顶!!
20楼正解,谢谢
附议,20楼
顶14楼,看来大家的问题都解决了。。
引用 7 楼 yanjichaoo 的回复:
在百度上找了一个解决scrollview和listview冲突的例子  里面的意思是用linearlayout代替listview  中间的意思是说通过一个资源数组来初始化linearlayout列  这样就会出现很多行的效果  可是用到我这里好像不行  我这个adapter的数据是服务器上解析来的  无法确定大小  就不能使用这种初始化的方式来解决了   求解啊  怎么能让他显示出来的时候就是在最上面 


Listview外套一层LinearLayout
14L  正解! 
14L和20L都正解,谢谢!
14和20都是正解,赞一个
帖子沉了,都别回了
scrollview和listview 这两个一起的话 滑动事件不冲突吗?
14L!!!year!!!baby~~
用了14楼的可以,非常感谢!
一般数据库不会存实际图片,而是存图片的路径地址
非常感谢14楼的解决方法
你们确定可以?  为什么我的从别的页面回来,会闪一下??
27楼  更棒

^_^ 如果您热爱技术、热爱编程,想与更多的朋友一起交流学习,欢迎加入本站官方QQ群:345733473 ^_^