使用 android:inputType textMultiLine 后无法选择项目
Posted
技术标签:
【中文标题】使用 android:inputType textMultiLine 后无法选择项目【英文标题】:Cant select item after use android:inputType textMultiLine 【发布时间】:2021-03-19 01:55:19 【问题描述】:我试图将 Picker 默认设置更改为 android ,所以我正在更改 android 默认设置(因为它不能用 css 完成)。
我的问题是:选择器没有显示大字符串。所以我在我的 styles.xml 中进行了更改:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:windowBackground">@drawable/screen</item>
<item name="android:spinnerItemStyle">@style/SpinnerItem</item>
<item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem</item>
</style>
<style name="SpinnerItem" parent="Theme.AppCompat.Light.NoActionBar">>
</style>
<style name="SpinnerDropDownItem" parent="Theme.AppCompat.Light.NoActionBar">>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:inputType">textMultiLine</item>
<item name="android:maxLines">3</item>
</style>
完成后,选择器现在换行。但它不再可选择。我尝试使用 android:clickable true,但没有成功。
我能做些什么来解决它?
【问题讨论】:
【参考方案1】:覆盖ArrayAdapter
中的getDropDownView()
方法并将setSingleLine(false)
放在视图的post 方法中。因此,当视图完全创建时,它会将文本换行到适当的行。
@Override
public View getDropDownView(final int position, View convertView, ViewGroup parent)
if (convertView == null)
convertView = new TextView(_context);
TextView item = (TextView) convertView;
item.setText("asddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd");
final TextView finalItem = item;
item.post(new Runnable()
@Override
public void run()
finalItem.setSingleLine(false);
);
return item;
【讨论】:
以上是关于使用 android:inputType textMultiLine 后无法选择项目的主要内容,如果未能解决你的问题,请参考以下文章