美文网首页程序员
Android Spinner值不显示,选择列表正常

Android Spinner值不显示,选择列表正常

作者: Yasin27878 | 来源:发表于2017-04-05 16:58 被阅读686次

    Android Spinner值不显示,选择列表正常

    本文由CSDN 迁移至此
    原文

    • 1.项目开发过程中,只有小米的手机出现这个问题
    • 2.我尝试使用AppCompatSpinner问题仍然没有解决
    • 结论:,其他没有遇到过,可能miui自己对Spinner的样式做了修改

    正文

    一.先看结果

    1.先看不显示的效果图

    这是预览的 选中值却没有显示出来的效果
    这是预览的 选中值却没有显示出来的效果
    2.显示正常的效果图
    这里写图片描述

    二.分析及过程

    1.分析
    考虑到其他手机能显示手上这部小米4不显示,可能是因为Spinner分配的空间不够显示,然后我尝试将三个Spinner宽度上1:1:1 的宽度全都改为wrap_content,并且将小标题的"配送地址"的宽度也调小了,最终测试的结果是 他们任然不显示.只有最后一个Spinner显示了,But 只显示了一个字,后面都是..... 这样来看的话说明我们用系统的android.R.layout.simple_spinner_item 样式的问题了,这个Spinner被miui修改过了 ,它要占用更大的空间才能显示,那么问题来了,我们只有这么大的空间,怎么处理呢?
    答案就是 使用自定义的样式,把Spinner内部负责显示的TextView的TextSize调小

    文件: R.layout.simple_spinner_item

    <?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:ellipsize="marquee"
              android:singleLine="true"
              android:textAlignment="inherit"
              android:textSize="16sp"/>
    

    这样在初始化Adapter的时候将

     mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mList); 
    

    变成

     mAdapter = new ArrayAdapter<String>(this, R.layout.simple_spinner_item, mList);
    

    使用本地的布局文件修改textsize="16sp"

    编译运行,结果妥妥的!!!

    相关文章

      网友评论

        本文标题:Android Spinner值不显示,选择列表正常

        本文链接:https://www.haomeiwen.com/subject/rxlxattx.html