当ScrowView嵌套listView加载完数据后列表自动滚动到最顶端的问题

来源:互联网 发布:公司礼品 知乎 编辑:程序博客网 时间:2024/05/08 20:53

当ScrowView嵌套listView时,而且在listview上端还有内容的时候,导致listview加载完数据后,自动滚动到最顶端的问题,以下是解决方案,即在外层再加一个LinearLayout ,就能解决,以下是实例

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"        android:orientation="vertical"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:background="@color/main_backgroud"        android:descendantFocusability="blocksDescendants"        android:id="@+id/ll_fragment_home">        <ScrollView        android:id="@+id/sv_histrack"        android:layout_width="match_parent"        android:layout_height="match_parent"        >        <com.mxnavi.drivemanager.demo.ui.MyListView        android:id="@+id/lv_ranking"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:listSelector="@drawable/normal_list_bg"        android:divider="@color/list_divider"        android:dividerHeight="1dip"        android:gravity="center"        android:scrollbars="none"        android:background="@color/list_backgroud"        >    </com.mxnavi.drivemanager.demo.ui.MyListView>    </ScrollView>    </LinearLayout>   ```       MyListView 的代码:     ```     public class MyListView extends ListView {    public MyListView(Context context)    {        super(context);    }    public MyListView(Context context, AttributeSet attrs)    {        super(context, attrs);    }    public MyListView(Context context, AttributeSet attrs, int defStyle) {        super(context, attrs, defStyle);    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)    {        int expandSpec= View.MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,                View.MeasureSpec.AT_MOST);        super.onMeasure(widthMeasureSpec, expandSpec);    }}
0 0
原创粉丝点击