2017-07-02 63 views
0

我使用的是Android ResideMenu庫,除了錯誤計算主要「內容活動」大小的問題外,該庫一般都很好。ResideMenu Android佈局高度錯誤

我已經測試了幾個設備,但它似乎有點在每一個關閉,這導致了一個問題,當我試圖顯示的活動底部的項目,如小吃店或自定義彈出(見圖片)。

從我讀過的內容來看,它可能與ResideMenu.java中的protected boolean fitSystemWindows(Rect insets)方法有關,但對於我來說,這似乎是微不足道的工作。

任何想法?

enter image description here

回答

0

當我使用這個庫ResideMenu和我有同樣的問題。在 ResideMenu.java文件我有兩個函數的變化。

功能:

@Override 
protected boolean fitSystemWindows(Rect insets) { 

    int bottomPadding = viewActivity.getPaddingBottom() + insets.bottom; 
    boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK); 
    boolean hasHomeKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME); 

    if (!hasBackKey || !hasHomeKey) {//there's a navigation bar 
     bottomPadding += getNavigationBarHeight(); 

    } 
    this.setPadding(viewActivity.getPaddingLeft() + insets.left, 
      viewActivity.getPaddingTop() + insets.top, 
      viewActivity.getPaddingRight() + insets.right, 
      bottomPadding); 
    insets.left = insets.top = insets.right = insets.bottom = 0; 
    return true; 
} 



private int getNavigationBarHeight() { 
    Resources resources = getResources(); 
    int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); 
    if (resourceId > 0) { 
     return resources.getDimensionPixelSize(resourceId); 
    } 
    return 0; 
} 
+0

許多提到這一點,但它不工作 - 測試W¯¯使用'的Nexus 5X API v24' – royherma

+0

/模擬器何況我認爲代碼是錯誤的 - 它不應該是hasBackKey | | hasHomeKey(不是) – royherma