防止界面被輸入法遮擋

    /**
     * rootHeight是window的高
     * rectBottom是window的Y坐標
     * mainInvisibleHeight是window的Y軸被遮擋的高度
     * needScrollHeight是需要滑動的距離(小于0代表下滑盐固,大于0代碼上滑)
     * 本方法認為輸入法的占屏比會超過1/5
     *
     * @param view   layout(可以是當前布局的任意控件或layout)
     * @param scroll 要求不被遮擋的控件
     */
    private void addLayoutListener(final View view, final View scroll) {
        view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                Rect rect = new Rect();
                //獲取window的可視區(qū)域大小莫鸭,并set到rect對象中
                view.getWindowVisibleDisplayFrame(rect);
                int rootHeight = view.getRootView().getHeight();
                int rectBottom = rect.bottom;
                int mainInvisibleHeight = rootHeight - rectBottom;
                if (mainInvisibleHeight > rootHeight/5) {
                    int[] location = new int[2];
                    scroll.getLocationInWindow(location);
                    int scrollHeight = scroll.getHeight();
                    int locations = location[1];
                    int needScrollHeight = (locations + scrollHeight) - rectBottom;
                    if (needScrollHeight > 0) {
                        view.scrollTo(0, needScrollHeight);
                    }
                } else {
                    view.scrollTo(0, 0);
                }
            }
        });
    }

這是一段防止界面被遮擋的代碼详炬,原理是動態(tài)移動被遮擋控件位置

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌饥脑,老刑警劉巖恳邀,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異灶轰,居然都是意外死亡谣沸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門笋颤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乳附,“玉大人,你說我怎么就攤上這事伴澄「吵” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵非凌,是天一觀的道長举农。 經(jīng)常有香客問我,道長敞嗡,這世上最難降的妖魔是什么颁糟? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮秸妥,結(jié)果婚禮上滚停,老公的妹妹穿的比我還像新娘沃粗。我一直安慰自己粥惧,他們只是感情好,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布最盅。 她就那樣靜靜地躺著突雪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涡贱。 梳的紋絲不亂的頭發(fā)上咏删,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機與錄音问词,去河邊找鬼督函。 笑死,一個胖子當著我的面吹牛激挪,可吹牛的內(nèi)容都是我干的辰狡。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼垄分,長吁一口氣:“原來是場噩夢啊……” “哼宛篇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起薄湿,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤叫倍,失蹤者是張志新(化名)和其女友劉穎偷卧,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吆倦,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡听诸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蚕泽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛇更。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖赛糟,靈堂內(nèi)的尸體忽然破棺而出派任,到底是詐尸還是另有隱情,我是刑警寧澤璧南,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布掌逛,位于F島的核電站,受9級特大地震影響司倚,放射性物質(zhì)發(fā)生泄漏豆混。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一动知、第九天 我趴在偏房一處隱蔽的房頂上張望皿伺。 院中可真熱鬧,春花似錦盒粮、人聲如沸鸵鸥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妒穴。三九已至,卻和暖如春摊崭,著一層夾襖步出監(jiān)牢的瞬間讼油,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工呢簸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留矮台,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓根时,卻偏偏與公主長得像瘦赫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子啸箫,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,846評論 25 707
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫耸彪、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,066評論 4 62
  • 桂花落了一地 踐踏著這滿世界的芬芳 百草枯碎成飄零的秋 陰森森的天際 呼啦啦的冷風 行人裹著這厚厚的化纖 瑟瑟發(fā)抖...
  • 母親說忘苛,現(xiàn)在的大多數(shù)節(jié)日蝉娜,不過是些障眼法唱较。偏偏有的人喜歡以此來考驗對方是否在意這些,是否珍視自己寵愛自己召川。其實是有...
    Biebe閱讀 397評論 0 3
  • 這里所說的轉(zhuǎn)換南缓,并不是Swift中字面量之間的轉(zhuǎn)換。如果是字面量之間的轉(zhuǎn)換荧呐,ios系統(tǒng)中已經(jīng)自動幫我們轉(zhuǎn)換了汉形。 例...
    Q了個L閱讀 1,717評論 0 0