天天看點

Android中ScrollView初始位置不在頂部問題

轉載請注明出處:blog.csdn.net/wll995806658

最近使用ScrollView的時候發現了一個小問題,如果ScrollView中包裹有ListView,RecyclerView,ExpandableListView等清單控件的時候,ScrollView的初始位置有時候會出現不在頂部的問題,出現這個問題的原因是這些清單控件會搶奪焦點,進而使ScrollView顯示與預期不符。

解決辦法:

1.如果ScrollView最頂端存在有其他控件,則手動設定這個控件擷取焦點

        view.setFocusable(true);

        view.setFocusableInTouchMode(true);

        view.requestFocus();

2.對ScrollView進行設定,使它滑動到頂部

       scrollView.post(new Runnable() {

            @Override

            public void run() {

                scrollView.fullScroll(ScrollView.FOCUS_UP);

            }

        });

3.使清單類的控件失去焦點

     listView.setFocusable(false);

4.手動設定ScrollView滑動到某位置

這裡有兩個方法:smoothScrollTo和scrollTo,smoothScrollTo滾動的時候是平緩的而不是立即滾動到某處。另外,smoothScrollTo()方法可以打斷滑動動畫

可以設定scrollTo(0,0)來使ScrollView滑動到最頂部。

如有錯誤,歡迎指出,感謝!