在做一个项目,界面里有个一个横向listview一个纵向的ListView,是全部显示出来的,要在最外层套一个ScrollVIew ,这样就出现问题了, scrollview内部元素变化的时候,scrollview自动滚动到变化的地方了.所以需要做一点点处理.
鼓捣了好久才找到最好的解决办法:
第一种方法
// final LinearLayout center_lay=(LinearLayout)findViewById(R.id.center_lay); // center_lay.postDelayed(new Runnable() { // @Override // public void run() { // // int off = center_lay.getMeasuredHeight() - scrollView.getHeight(); // Log.d("收到","off="+off+""); // if (off > 0) { // scrollView.scrollTo(off,0); // } // } // },1000);但是这个方法比较坑 ,界面会闪一下.
所以用第二种方法:
重写scrollview中的如下方法,并将其返回值设为0即可。
@Override
protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) {
return 0;
}