我有一個應用程序,用戶在圖庫中選擇圖片或從圖片中選擇圖片。在下一頁中,我使用onGlobalLayout
來確定View
的大小。當用戶從圖庫中選取圖片時,View
尺寸在onGlobalLayout
中正確返回。但是,當用戶拍攝照片時,頂部的Status Bar
不可見。當下一個活動出現時,Status Bar
從頂部滑入,從而改變屏幕大小,但onGlobalLayout
未考慮此因素,因此返回錯誤的視圖大小。onGlobalLayout返回的視圖大小錯誤
這似乎是一個Android的錯誤,我正在考慮提交一個錯誤報告。但是,有沒有人有任何解決方法?
實施例:
public class MyView extends View implements OnGlobalLayoutListener {
@Override
public void onGlobalLayout() {
Log.d("MyView", "Width: " + getWidth());
Log.d("MyView", "Height: " + getHeight());
}
}
上面的代碼將返回兩個不同的寬度和高度取決於如果我從返回屏幕具有一個狀態欄或沒有。
感謝
很難提出修正或解決方法,沒有任何代碼作爲起點。但我認爲你有什麼理由不能發佈? – anthropomo
我已經添加了一個OnGlobalLayoutListener的基本示例...但是,我不能發佈完整的代碼,因爲它會太多(我不允許;)) – Nick
你可以添加xml以便我們可以看到這個視圖在佈局? –