Android中Spinner下拉列表单个item显示多行文本的处理
1. 首先先创建一个布局文件 spinner_multiline_item_simple.xml
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="12dp" android:textSize="16sp" android:textColor="#333333" android:ellipsize="end" android:singleLine="false" <!-- 关键:允许多行 --> android:maxLines="3" <!-- 最大显示3行 --> android:minHeight="48dp"/> <!-- 最小高度 -->
2. 处理适配器
private void setupSpinnerWithMultilineLayout() { Spinner spinner = findViewById(R.id.spinner); // 包含换行符的文本 String[] items = { "正常选项", "第一行文字\r\n第二行文字", "这是描述文本的第一行\n这是第二行\n这是第三行", "短文本" }; // 使用自定义布局 ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, R.layout.spinner_multiline_item_simple, // 自定义布局 items ) { // 选中项显示单行 @Override public View getView(int position, View convertView, ViewGroup parent) { TextView textView = (TextView) super.getView(position, convertView, parent); // 选中项去除换行,显示为单行 String text = getItem(position); if (text != null) { text = text.replace("\r\n", " ").replace("\n", " "); textView.setText(text); textView.setSingleLine(true); textView.setEllipsize(TextUtils.TruncateAt.END); } return textView; } }; spinner.setAdapter(adapter); }
3.看看效果,下拉列表和点击选择后的效果


浙公网安备 33010602011771号