【问题标题】:Android AutoCompleteTextView widthAndroid AutoCompleteTextView 宽度
【发布时间】:2021-06-22 13:24:35
【问题描述】:

我正在按照本指南创建下拉菜单: https://material.io/components/menus/android#exposed-dropdown-menus

所以我有一个TextInputLayout,其中包含MaterialAutoCompleteTextView 的自定义子类。

我覆盖 convertSelectionToString 以显示所选项目的较短版本:

    @Override
    protected CharSequence convertSelectionToString(Object selectedItem) {
        if (selectedItem instanceof CountryInfo) {
            CountryInfo country = (CountryInfo) selectedItem;
            return country.toShortString();
        }
        return super.convertSelectionToString(selectedItem);
    }

您可以在下面看到它的外观。但是,我想要的是上部文本输入框仅包装缩短的文本,而下拉列表扩展得足够宽以显示其内容。

我有什么

我想要什么(模拟)

【问题讨论】:

标签: android material-design androidx android-jetpack


【解决方案1】:

您需要根据其中项目的选择来计算视图的宽度。

我猜你的自定义视图有一些像 setText 这样的方法,对吧? 之后,您可以设置宽度以包装当前选定视图的内容。所以是这样的:

CharSequence selectedText = convertSelectionToString(selectedObject);
yourView.setText(selectedText);

// ConstraintLayout is mentioned here, but it can be any layout
yourView.setLayoutParams(new ConstraintLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
yourView.invalidate(); // might be needed to use

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    相关资源
    最近更新 更多