android - 将 AutoCompleteTextView 下拉高度设置为底部上方 60dp

标签 android

我试图将我的 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。

dropdown1

但是,当我尝试运行 Android 6.0 的模拟器时,它无法正常工作。

dropdown2

如何解决?

最佳答案

我通过实现扩展 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();
    }

关于android - 将 AutoCompleteTextView 下拉高度设置为底部上方 60dp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49335670/

相关文章:

java - 单元测试 Presenter 的业务逻辑

java - 问题,无法将 View.onClickListener 的类与主类分开。帮助!

android - 覆盖 TextView 的文本大小

android - 使用 robolectric 时如何访问我的测试类中的资源

android - 我看不到我的自定义进度对话框

android - 在 Android 中获取用于单元测试的 Activity 对象的最佳方法是什么?

android - 如何在连接到远程系统的设备上部署和执行应用程序?

android - 警报对话已保护访问权限

android - 找不到检测目标包 : com. xyz

javascript - 如何使用 Parse Server 正确设计可靠的确认机制?