1. 程式人生 > >解決android7.0上某些PopuWindow顯示位置不正確的問題

解決android7.0上某些PopuWindow顯示位置不正確的問題

  情景描述:在andorid7.0及以上系統,點選某個view,本來期待有一個Popuwindow在該view下面彈出(呼叫PopuWindow.showAsDropDown(view)方法)但結果PopuWindow卻彈出在view上方,頂在系統狀態列下面。

  原因:在android7.0上,如果不主動約束PopuWindow的大小,比如,設定佈局大小為 MATCH_PARENT,那麼PopuWindow會變得儘可能大,以至於 view下方無空間完全顯示PopuWindow,而且view又無法向上滾動,此時PopuWindow會主動上移位置,直到可以顯示完全。
解決辦法:主動約束PopuWindow的內容大小,重寫showAsDropDown方法:

@Override
public void showAsDropDown(View anchor) {
    if(Build.VERSION.SDK_INT >= 24){
        Rect visibleFrame = new Rect();
        anchor.getGlobalVisibleRect(visibleFrame);
        int height = anchor.getResources().getDisplayMetrics().heightPixels - visibleFrame.bottom;
        setHeight(height);
    }

    super
.showAsDropDown(anchor); }

相關推薦

解決android7.0某些PopuWindow顯示位置正確的問題

  情景描述:在andorid7.0及以上系統,點選某個view,本來期待有一個Popuwindow在該view下面彈出(呼叫PopuWindow.showAsDropDown(view)方法)但結果PopuWindow卻彈出在view上方,頂在系統狀態列下面。

PopupWindow在Android7.0和7.1系統顯示位置正確的問題解決

前言 今天做專案需要用到PopupWindow,但發現其顯示的位置在Android7.0以下系統正常,在7.0和7.1系統顯示不正常,點選“開啟POP”按鈕效果對比如下: 4.1系統 7.0系統 7.1系統 程式碼如下: public class MainActiv

JQuery判斷radio屬性為空的時候錯誤提示信息顯示位置正確解決辦法

JQuery from表單驗證 radio input submit 只需要定義一個以下標簽即可以想讓錯誤信息顯示到哪裏就顯示到哪裏<label for="name" class="error"></label>說明:

Android NPopwindow顯示位置正確問題

Popwindow是Android應用開發過程中比較常用的一個元件,最近發現了在Android N(Android 7.0,7.1)上Popwindow的一個位置顯示問題,當指定PopupWindow高度為MATCH_PARENT時使用showAsDropDow

解決android7.0+ 自定義Toast時長,但是toast顯示問題

重點在於解決部分機型自定義Toast 時長不顯示問題 在部分手機上會出現自定義時長的Toast不顯示,從而導致出現bug(排除Toast許可權被關閉情況),這樣我們需要自定義Toast 程式碼如下 public class ToastUtils { pr

appium在android7.0無法啟動問題

ESS cep 升級 代碼 resp 部分 elf back file 前言 由於最近很多android手機升級到7.0系統了,有些小夥伴的appium版本用的還是1.4版本,在運行android7.0的app自動化時候遇到無法啟動問題:WebDriverException

Android7.0拍照與選擇照片Crash問題

在Android7.0系統上,Android 框架強制執行了 StrictMode API 政策禁止向你的應用外公開 file:// URI。 如果一項包含檔案 file:// URI型別 的 Intent 離開你的應用,應用失敗,並出現 FileUriExpo

ios開發中WKWebView在iOS11.0部分連結顯示出來

// ************ 解決不能載入微信公眾號文章在iOS11.0裝置上的問題************ //configuretion.preferences.minimumFontSize =

Android拍照和從相簿獲取圖片(解決android7.0開啟相機崩潰的問題),同時也解決了拍完照後圖片方向正的問題

再android7.0中相機操作需要動態申請許可權,在點選開啟相機按鈕時要先判斷許可權,沒有許可權要申請,有許可權再操作,同時在申請許可權的回撥方法中也要判斷是否有許可權,有許可權的話再呼叫開啟相機的方法 package test.img.com.myim

解決Android7.0更新後無法安裝的問題

?12345678if (!apkfile.exists()) {Toast.makeText(mContext, "下載的安裝包不存在", Toast.LENGTH_SHORT).show();return;}Intent install = new Intent(Intent.ACTION_VIEW);i

解決Android7.0下沉浸式狀態列變灰問題

1.緒論 現在基本上所有的應用都會去實現沉浸式狀態列,這個是應用的標配,如果你開發的應用沒有,那這個吐槽點就多了,“這美工有審美觀麼”“程式猿這麼菜,沉浸式都不會?”….. 咳咳….. 開個玩笑啊,各有各的設計思想,不能怪程式猿。 2.問題 那麼說到沉浸式

解決Android7.0 更新安裝包時能自動安裝問題

專案中發現在自動更新功能的時候,下載好了apk的檔案後在android7.0系統中不能自動跳到安裝介面,後來搜尋了一番解決了問題,但感覺沒有描述清楚,所以補充一下。 每個Android版本的釋出,對於安全性問題的要求越來越高,也為Android程式設計師增加了額外的工作量。Android6.0引入動態許可權控

解決Android7.0系統 呼叫系統相機、系統播放器播放視訊、切圖相容問題,報異常android.os.FileUriExposedException

Android7.0以前獲取本地檔案uri用的Uri.fromFile(new File(filePath)); 後會得到一個file://,這種方式呢7.0及以後的系統版本就用不了,且會報一個異常:

快速使用FileProvider解決Android7.0檔案許可權問題

升級到Android7.0之後,啟動系統相機或者截圖,傳入URI的時候可能會導致程式閃退崩潰。這是因為7.0的新的檔案許可權導致的。下面是解決這個問題的快速解決方案。 問題程式碼 在7.0可能會出問題的程式碼: final String CACHE

解決SDCycleScrollView組建遇到UINavigationController時圖片位置準確

像這樣,在帶有UINavigationController的頁面上圖片總是向下位移一段 解決方法: 在viewDidLoad裡面最先隨便新增一個空View,然後再新增這個外掛: [self.vi

SpriteKit改變Node錨點其物理物件位置正確解決

在建立Node的物理物件後,預設情況下物理物件和Node的實際邊界對應的很好,因為此時Node的預設錨點是其中心位置即(0.5,0.5),不過如果我們改變了Node的錨點,就會發現其物理邊界還是保持原來的位置,這可不是我們想要的結果: let bouncer

解決電腦能QQ,卻打開網頁的問題

   第二,如果這裡沒有重複安裝,但又肯定撥號網路中的配置無誤,那麼極有可能就是TCP/IP協議出錯造成無法瀏覽網頁,解決辦法是刪除此協議重新安裝 TCP/IP(注意做此步前請先確定你有windows9x的安裝光碟,因為重灌時系統需要從此光碟中讀取資料),具體方法是:用滑鼠左鍵單擊“撥號網路介面卡”,再留意此

解決拷貝的虛擬機網卡配置正確的問題

說明 網絡連接 name lin work prot system onf 啟動 解決拷貝的虛擬機網卡配置不正確的問題 一、背景 在開發的過程中,我們經常會拷貝虛擬機。有時候我們拷貝來的虛擬機的網卡不能正常啟動。出現“沒有找到合適的設備:沒有

org.eclipse.ui.PartInitException: 編輯器初始化失敗:位置正確

錯誤: org.eclipse.ui.PartInitException: 編輯器初始化失敗:com.feer.ds.ui.sql.editors.SQLDataSetEditorPart。位置不正確。 解決辦法: 在init方法中,新增上如下程式碼即可public v

資料庫date型別資料前端頁面顯示格式正確問題

oracle date 資料  型別 2017-01-13 10:53:03 頁面前端顯示樣式 Fri Oct 13 10:53:03 CST 2017  解決方法 <fmt:formatDa