TabLayout切換標題欄被頂上去的處理

通常都是ScrollView滑動而後包裹TabLayout+ViewPager+Fragmentandroid

在Fragment內包含 WebView、ListView、或者GridView之類的ide

一、設置ScrollView獲取焦點:佈局

mVideoScrollview.setFocusable(true);
mVideoScrollview.setFocusableInTouchMode(true);
mVideoScrollview.requestFocus();

二、設置ScrollView滑到頂部動畫

//第一種:ScrollView有一個滑動到頂部的動做(一個動畫);
mVideoScrollview.fullScroll(ScrollView.FOCUS_UP);
//第二種沒有滑動動做直接到頂部
mVideoScrollview.scrollTo(0,0);

三、設置個人ScrollView中的GridView之類的不獲取焦點:生命週期

mVideotwoLisview.setFocusable(false);

佈局中:ScrollView的佈局it

android:focusable="true"
android:focusableInTouchMode="true"
android:descendantFocusability="beforeDescendants"

爲何要在佈局和代碼中兩次設置呢。雙重保險嘛~~只在佈局或者只在代碼中設置有時就會有問題List

 

通過這兩方面的設置,依然不能每次都實現全部目標,從其餘fragment切換回來仍是不能自動置頂(好,重點來啦!!敲黑板兒!!)fragment

思路: 1.fragmennt的生命週期;項目中並非使用ViewPager裝載Fragment,只是在底部畫了四個佈局,點擊切換Fragment,我在包含ScrollView的fragment裏面將Fragment的生命週期全都打印出來,發現並無走,最後仍是問了別人,知道了一個fragment的方法request

@Override
public void onHiddenChanged(boolean hidd) {
    if(!hidd){//當fragment從隱藏到出現的時候  
        scrollView.scrollTo(0,0);
    }
}
//從Activity回到包含ScrollView的fragment
//fragment的生命週期,我在重寫了onResume()
    @Override
    public void onResume() {
        super.onResume();
        myScrollView.scrollTo(0,0);//從其餘Activity回來,讓ScrollView置頂  
    }

代碼中,佈局中,fragment的生命週期中(就是以上我寫的全部的代碼)設置完畢scroll

相關文章
相關標籤/搜索