自定义spinner实现选项换行/多行(代码片段)

scruffybear scruffybear     2023-03-09     165

关键词:

文章目录

小结

如果Android的Spinner的下拉框文字过长,下拉框选项后面的过长的文字会显示为省略号,尝试使用定制化的Spinner风格设置达到Spinner选项触发后各个选项显示为换行/多行。

问题及解决

如果Android的Spinner的下拉框文字过长,下拉框选项后面的过长的文字会显示为省略号。

解决办法: 使用定制化的Spinner风格设置达到Spinner选项触发后各个选项显示为换行/多行。

具体操作如下:
创建multiline_spinner_dropdown_item.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/spinnerDropDownItemStyle"
    android:singleLine="false"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/cfgText"
    android:textSize="10sp"
    android:textStyle="normal"
    android:fontFamily="@font/roboto"
    android:layout_marginTop="5sp"
    android:layout_marginBottom="5sp"
    android:layout_marginStart="0sp"
    android:layout_marginEnd="0sp"
    android:paddingTop="5sp"
    android:ellipsize="marquee" />

选项设置(有5个选项):

    <string-array name="Array_options">
        <item>Option1</item>
        <item>Option2</item>
        <item>Option3</item>
        <item>Option4</item>
        <item>Option5</item>
    </string-array>

Spinner的原始设置如下:

        <Spinner
            android:id="@+id/spinner_code"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.6"
            android:duplicateParentState="true"
            android:entries="@array/Array_options"
            tools:text="@string/spinner_code_sample" />

Spinner的修改后的设置如下,去掉 android:entries="@array/Array_options",默认没有选项内容,由程序进行创建设置。

        <Spinner
            android:id="@+id/spinner_code"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.6"
            android:duplicateParentState="true"
            tools:text="@string/spinner_code_sample" />

在程序中使用multiline_spinner_dropdown_item这个定制化的Spinner风格创建Spinner,选项从R.array.Array_options里取得。

Spinner mModelSelect = (Spinner)findViewById(R.id.spinner_code);
mModelSelect.setAdapter(ArrayAdapter.createFromResource(getContext(), R.array.Array_options, R.layout.multiline_spinner_dropdown_item));

问题解决!

参考

CSDN: Spinner选项换行
Stackoverflow: How to change spinner text size and text color?

android自定义spinner控件及其使用(代码片段)

...ing="utf-8"?><resources><string-arrayname="spinner_string"><item>C语言</item><item>C++</item><item>python</item><item>Java</item></string-array></resources>2.在界面文件中添加Spinner... 查看详情

纯css自定义多行省略:从原理到实现(代码片段)

...是什么?单行还是多行?截断,省略,自定义样式,自适应高度?在这里你都能找到答案。接下来我会由浅 查看详情

自定义 TableViewCell 中的标签不能是多行或换行

】自定义TableViewCell中的标签不能是多行或换行【英文标题】:LabelinCustomTableViewCellcan\'tbemultilineorwrap【发布时间】:2013-03-2610:36:55【问题描述】:我尝试将自定义tableViewCell类中的单元格设置为多行并换行。我在这里阅读了我的问... 查看详情

自定义可自动换行的radiobutton组件(代码片段)

✏️丨自定义可自动换行的RadioButton组件1.需求如下:2.实现效果展示3.实现代码1.需求如下:前阵子做了一个点名管理的需求,点名状态由后端配置的,不同大队的点名机制可能不同,比如一中队状态:“... 查看详情

自定义可自动换行的radiobutton组件(代码片段)

✏️丨自定义可自动换行的RadioButton组件1.需求如下:2.实现效果展示3.实现代码1.需求如下:前阵子做了一个点名管理的需求,点名状态由后端配置的,不同大队的点名机制可能不同,比如一中队状态:“... 查看详情

android中spinner下拉列表(使用arrayadapter和自定义adapter实现).

今天学习了Spinner组件,使用Spinner相当于从下拉列表中选择项目,下面演示一下Spinner的使用(分别使用ArrayAdapter和自定义Adapter实现)(一):使用ArrayAdapter进行适配数据:  ①:首先定义一个布局文件:<spanstyle="font-size:16px;">... 查看详情

如何在 Android 中自定义 Spinner

】如何在Android中自定义Spinner【英文标题】:HowtocustomizeaSpinnerinAndroid【发布时间】:2013-05-1716:23:36【问题描述】:我想在Spinner的下拉列表中添加自定义高度,例如30dp,并且我想隐藏Spinner下拉列表的分隔线。到目前为止,我尝试... 查看详情

android-----spinner组件使用(实现下单)(代码片段)

listview组件和spinner组件使用方法类似,从string.xml中通过entries获取数据显示。但如果要显示的列表项无法在执行前确定,或是要在程序执行的过程中变更选项内容,通过entries获取数据就行不通了。在这里需要用到ArrayAdapter。ArrayA... 查看详情

makefile(04)_函数(代码片段)

9.函数定义及调用Makefile中支持函数的概念,make解析器提供了一系列函数供Makefile使用。同时可以自定义函数。9.1.自定义函数在Makefile中支持自定义函数的实现,并调用执行,通过define关键字来实现自定义函数。函数定义的语法... 查看详情

csswordpress-自定义主题选项(代码片段)

查看详情

csswordpress-自定义主题选项(代码片段)

查看详情

phpacfpro|自定义选项页面(代码片段)

查看详情

php自定义主题选项(代码片段)

查看详情

java示例代码_实现无选项卡的自定义菜单

java示例代码_实现无选项卡的自定义菜单 查看详情

flume自定义反序列化器deserializer(代码片段)

...ent进行传输。解决思路:   解决上述需求可以通过自定义拦截器和自定义反序列化器来实现。网上关于自定义拦截器的资料比较多,但考虑到拦截器的定位和使用场景,拦截器不应用于多个event拆分组合,并若flume有并发处... 查看详情

php使用自定义选项创建产品(代码片段)

查看详情

phpacf的自定义tinymce选项(代码片段)

查看详情

php检查自定义wp选项(代码片段)

查看详情