android - 使用 android:inputType textMultiLine 后无法选择项目
问题描述
我试图将 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,但没有奏效。
我能做些什么来修复它?
解决方案
覆盖getDropDownView()
方法ArrayAdapter
并放入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;
}
推荐阅读
- .net - 为什么 dotnet build 和 build in Visual Studio 会产生不同的输出?
- javascript - 两个不同的 .Click() 函数同时工作而不是单独工作 - jquery
- javascript - 通过 JS 更改 CSS 变量
- flutter - RangeSlider 上的 Flutter RangeLabels 不起作用
- php - Codeigniter 3 博客应用程序错误:即使帖子标题没有更改,也要发布 slug 更新
- python - 性能改进 - 搜索 dict (id -> list of lists)
- java - 使用 FileWriter 覆盖相同的文件
- r - 不能使用大于和替换年份
- javascript - 我无法使用
- spring - Thymeleaf 无法将多部分文件转换为字节