解决ScrollView嵌套ListView进入界面不在顶部的问题

来源:互联网 发布:景安域名转入 编辑:程序博客网 时间:2024/06/01 22:07
问题:
ScrollView嵌套ListView,为了使ListView全部显示,设置了ListView的高度,进入界面后就不在顶部了,而是在
ListView的顶部。在网上找了几种方法,或者设置的不对或者不可行,都没有成功。最后自己重写ListView的获取
焦点方法解决了。
import android.content.Context;import android.graphics.Rect;import android.util.AttributeSet;import android.widget.ListView;/** * Created by gly on 2016/11/24. */public class ShowAllListView extends ListView{    private boolean focus;    public ShowAllListView(Context context) {        super(context);    }    public ShowAllListView(Context context, AttributeSet attrs) {        super(context, attrs);    }    public ShowAllListView(Context context, AttributeSet attrs, int defStyle) {        super(context, attrs, defStyle);    }    /**     * ListView全部显示     */    @Override    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int expandSpec = MeasureSpec.makeMeasureSpec(                Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);        super.onMeasure(widthMeasureSpec, expandSpec);    }    /**     * 请求获得焦点     */    @Override    public boolean requestFocus(int direction, Rect previouslyFocusedRect) {        return focus?super.requestFocus(direction, previouslyFocusedRect):false;    }    /**     * 设置ListView是否获得焦点     */    public void setFocus(boolean focus){        this.focus = focus;    }}
阅读全文
1 0