【问题标题】:Android Spinner not work multilineAndroid Spinner 不能多行工作
【发布时间】:2016-04-26 17:38:57
【问题描述】:

在 android 中查看微调器时遇到问题。那是多行 不显示 Android 5.1.1 .. 但如果多行显示在 android 以下 我使用的代码如下。

同样的代码来自另一个问题,但没有看到帮助我的答案

/res/values/arrays.xml:

<string-array name="items">
<item>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt.</item>
<item>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est.</item>

res/layout/spinner_item.xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/spinnerDropDownItemStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="none"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:singleLine="false" />

设置适配器

spinner.setAdapter(ArrayAdapter.createFromResource(this,
            R.array.items,
            R.layout.spinner_item));

请帮帮我

【问题讨论】:

    标签: android spinner multiline


    【解决方案1】:

    重写 ArrayAdapter 中的 getDropDownView 方法,并将 setSingleLine(false) 放入 view 的 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;
        }
    

    For details visit

    【讨论】:

    • 能否详细说明为什么setSingleLine(false)需要在post方法中调用?
    【解决方案2】:

    试试这个

    <Spinner
        android:id="@+id/spinnerFrom"
        style="@style/Widget.AppCompat.Spinner.Underlined"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />    
    

    【讨论】:

      猜你喜欢
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      • 1970-01-01
      • 2019-01-30
      相关资源
      最近更新 更多