Android中adjustResize失效的解決辦法之一

今天幫助哥們解決了一個比較蛋疼的問題,就是在有的情況下會出現(xiàn)設置activity的windowSoftInputMode="adjustResize"時辈双,會失效的情況责掏。

歷盡千辛萬苦,終于在stackflow上找到解決方法湃望。在activity的根布局上添加fitsSystemWindows="true".

然后adjustResize就可以成功的起作用了拷橘。但是在這種情況下,你的titlebar會下移statusbar的高度的距離喜爷。所以就必須重寫一個layout繼承自你所使用的layout冗疮,并重寫其中的兩個方法,貼出代碼:

 public class MyLinearLayout extends LinearLayout{

     private int[] mInsets = new int[4];

     public MyLinearLayout(Context context) {
         super(context);
     }

     public MyLinearLayout(Context context, AttributeSet attrs) {
         super(context, attrs);
     }

     public MyLinearLayout(Context context, AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
     }

     @TargetApi(Build.VERSION_CODES.LOLLIPOP)
     public MyLinearLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
         super(context, attrs, defStyleAttr, defStyleRes);
     }

     @Override
     protected final boolean fitSystemWindows(Rect insets) {
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
             // Intentionally do not modify the bottom inset. For some reason,
             // if the bottom inset is modified, window resizing stops working.
             // TODO: Figure out why.

             mInsets[0] = insets.left;
             mInsets[1] = insets.top;
             mInsets[2] = insets.right;

             insets.left = 0;
             insets.top = 0;
             insets.right = 0;
         }

         return super.fitSystemWindows(insets);
     }

     @Override
     public final WindowInsets onApplyWindowInsets(WindowInsets insets) {
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
             mInsets[0] = insets.getSystemWindowInsetLeft();
             Log.e("mInsets[0]",""+mInsets[0]);
             mInsets[1] = insets.getSystemWindowInsetTop();
             Log.e("mInsets[1]",""+mInsets[1]);
             mInsets[2] = insets.getSystemWindowInsetRight();
             Log.e("mInsets[2]",""+mInsets[2]);
             return super.onApplyWindowInsets(insets.replaceSystemWindowInsets(0, 0, 0,
                     insets.getSystemWindowInsetBottom()));
         } else {
             return insets;
         }
     }
}

自己也記錄一下檩帐。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末术幔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子湃密,更是在濱河造成了極大的恐慌诅挑,老刑警劉巖四敞,帶你破解...
    沈念sama閱讀 212,332評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拔妥,居然都是意外死亡忿危,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評論 3 385
  • 文/潘曉璐 我一進店門没龙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铺厨,“玉大人,你說我怎么就攤上這事硬纤〗庾遥” “怎么了?”我有些...
    開封第一講書人閱讀 157,812評論 0 348
  • 文/不壞的土叔 我叫張陵筝家,是天一觀的道長洼裤。 經(jīng)常有香客問我,道長溪王,這世上最難降的妖魔是什么腮鞍? 我笑而不...
    開封第一講書人閱讀 56,607評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮莹菱,結果婚禮上移国,老公的妹妹穿的比我還像新娘。我一直安慰自己芒珠,他們只是感情好桥狡,可當我...
    茶點故事閱讀 65,728評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著皱卓,像睡著了一般裹芝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上娜汁,一...
    開封第一講書人閱讀 49,919評論 1 290
  • 那天嫂易,我揣著相機與錄音,去河邊找鬼掐禁。 笑死怜械,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的傅事。 我是一名探鬼主播缕允,決...
    沈念sama閱讀 39,071評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蹭越!你這毒婦竟也來了障本?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,802評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎驾霜,沒想到半個月后案训,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,256評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡粪糙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,576評論 2 327
  • 正文 我和宋清朗相戀三年强霎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓉冈。...
    茶點故事閱讀 38,712評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡城舞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出洒擦,到底是詐尸還是另有隱情椿争,我是刑警寧澤怕膛,帶...
    沈念sama閱讀 34,389評論 4 332
  • 正文 年R本政府宣布熟嫩,位于F島的核電站,受9級特大地震影響褐捻,放射性物質發(fā)生泄漏掸茅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,032評論 3 316
  • 文/蒙蒙 一柠逞、第九天 我趴在偏房一處隱蔽的房頂上張望昧狮。 院中可真熱鬧,春花似錦板壮、人聲如沸逗鸣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撒璧。三九已至,卻和暖如春笨使,著一層夾襖步出監(jiān)牢的瞬間卿樱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,026評論 1 266
  • 我被黑心中介騙來泰國打工硫椰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留繁调,地道東北人。 一個月前我還...
    沈念sama閱讀 46,473評論 2 360
  • 正文 我出身青樓靶草,卻偏偏與公主長得像蹄胰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子奕翔,可洞房花燭夜當晚...
    茶點故事閱讀 43,606評論 2 350

推薦閱讀更多精彩內(nèi)容