我正在尝试将AutoCompleteTextView
的下拉高度设置为高于屏幕底部60dp。
displayMetrics = new DisplayMetrics();
WindowManager windowmanager = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
windowmanager.getDefaultDisplay().getMetrics(displayMetrics);
int height = Math.round(displayMetrics.heightPixels / displayMetrics.density - 60);
edtSeach.setDropDownHeight(height);
这适用于运行Android 7.0的华为P9 Lite。
但是,当我尝试运行Android 6.0的模拟器时,它无效。
如何解决这个问题?
答案 0 :(得分:0)
使用android:dropDownHeight="100dp"
指定
dropdown
的基本高度。其值可以是一个维度(例如" 12dip"),用于恒定高度,fill_parent
或match_parent
用于填充屏幕高度,或wrap_content
匹配下拉内容的高度。可以是维度值,它是附加单位的浮点数,例如" 14.5sp"。可用单位为:px(像素),dp(与密度无关的像素),sp(基于首选字体大小的缩放像素),in(英寸)和mm(毫米)。
示例代码
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:dropDownHeight="100dp"/>
答案 1 :(得分:0)
我通过实现扩展AppCompatAutoCompleteTextView
的自定义类来解决问题。
public void showDropDown() {
Rect displayFrame = new Rect();
getWindowVisibleDisplayFrame(displayFrame);
int[] locationOnScreen = new int[2];
getLocationOnScreen(locationOnScreen);
int bottom = locationOnScreen[1] + getHeight();
int availableHeightBelow = displayFrame.bottom - bottom;
Resources r = getResources();
int bottomHeight = Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 60, r.getDisplayMetrics()));
int downHeight = availableHeightBelow - bottomHeight;
setDropDownHeight(downHeight);
super.showDropDown();
}