내가이 [http://keepsafe.github.io/2014/11/19/building-a-custom-overflow-menu.html] 자습서를 follwing을했지만 그것이
그래서 나는 또한 같은 대답을 찾고 있었어요 그리고 잠시 동안 검색 한 폭을 변경하는 방법을 언급하지 않았다, 유래에 대한 모든 질문에 답이 있었다. 마지막으로 나는 방법을 찾기 위해 developer.google.com을 파헤 쳐야했습니다.
http://developer.android.com/reference/android/widget/ListPopupWindow.html
당신이 방법 setContentWidth을 발견 할 것이다 (INT 폭) 실제로 우리의 작업을 수행한다. 여기
이 ==>
의 답
//.......... Something on top
popupMenu.show();
// Try to force some horizontal offset
try {
Field fListPopup = menuHelper.getClass().getDeclaredField("mPopup");
fListPopup.setAccessible(true);
Object listPopup = fListPopup.get(menuHelper);
argTypes = new Class[] { int.class };
Class listPopupClass = listPopup.getClass();
// Get the width of the popup window
int width = (Integer) listPopupClass.getDeclaredMethod("getWidth").invoke(listPopup);
// Invoke setHorizontalOffset() with the negative width to move left by that distance
listPopupClass.getDeclaredMethod("setHorizontalOffset", argTypes).invoke(listPopup, -width);
/*********** THIS LINE DOSE OUR WORK and increases the width of OverFlow Menu ******/
listPopupClass.getDeclaredMethod("setContentWidth", argTypes).invoke(listPopup, width+200);
// Invoke show() to update the window's position
listPopupClass.getDeclaredMethod("show").invoke(listPopup);
} catch (Exception e) {
// Again, an exception here indicates a programming error rather than an exceptional condition
// at runtime
Log.w("Soemthing", "Unable to force offset", e);
}
이다