如图 部分手机设置了全屏后,左,右,上边有边距没法全屏显示
就算在xml中设置了
android:dropDownWidth="match_parent"或者在代码中设置了
autoTetextview .setDropDownWidth(LinerlLayout.LayoutParams.MATCH_PARENT);
这两个地方都尝试过没法消除边距
这个问题也困扰了半天,跟踪源码发现和popupWindowBackground有关 ,在ListPopupWindow中找到
/** * Sets the width of the popup window by the size of its content. The final width may be * larger to accommodate styled window dressing. * * @param width Desired width of content in pixels. */ public void setContentWidth(int width) { Drawable popupBackground = mPopup.getBackground(); if (popupBackground != null) { popupBackground.getPadding(mTempRect); mDropDownWidth = mTempRect.left + mTempRect.right + width; } else { setWidth(width); } }
当背景不为null时,mDropDownWidth的宽度不是我们传入的width还要加上mTempRect.left和mTempRect.left ;这也是为啥有的手机有边距的原因了
解决办法 :设置popupBackground背景为null
android:popupBackground="@null"