禁止ScrollView中控件长度发生变化自动滑动

来源:互联网 发布:java编程是不是简单点 编辑:程序博客网 时间:2024/06/05 02:52

问题:当ScrollView中的子控件长度发生变化时,ScrollView会自动滑动,需要禁掉

解决方法:

<ScrollView           android:layout_width="match_parent"          android:layout_height="match_parent">            <LinearLayout              android:layout_width="match_parent"              android:layout_height="wrap_content"              android:orientation="vertical"               android:focusable="true"              android:focusableInTouchMode="true">                                 ......                     </LinearLayout>      </ScrollView> 
在ScrollView中的LinearLayout加入:

android:focusable="true"android:focusableInTouchMode="true" 

将焦点给LinearLayout,当子控件长度发生变化时Scrollview就不会自动滑动.

如果上面方法不能解决,就需要重写ScrollView:

复写computeScrollDeltaToGetChildRectOnScreen返回0,导入Rect类即可

public class NoAutoSlideScrollView extends ScrollView {    public NoAutoSlideScrollView(Context context) {        super(context);    }    public NoAutoSlideScrollView(Context context, AttributeSet attrs) {        super(context, attrs);    }    public NoAutoSlideScrollView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    @Override    protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) {        return 0;    }}



 
阅读全文
0 0
原创粉丝点击