Android 默认显示两行的Spinner

  1.有时候看到明明是一个Spinner,但是点击之后弹出的明显是一个自定义的对话框;如果真的是Spinner的话是不可能实现这种效果的,Spinner点击效果有两种展现方式,一种是直接下拉显示数据,另一种是弹出对话框,但是对话框里也只能是数据的列表;那如果只有一条数据,然后这只onClick事件可不可以实现呢?答案是否定的,Spinner是不允许设置onClickListener的,只能设置onItemClickListener,所以无法在点击的时候弹出自定义的对话框;那之前看到的那个效果是如何实现的呢?哦然在stackflow上看到了对textView设置的style:style="@android:style/Widget.DeviceDefault.Light.Spinner" 
设置这个属性之后会发现,textview的扎实效果跟Spinner一样了,连selector都是一样的...然后再添加一个onClickListener,想要什么样的对话框都行了.....
     2.如何实现这样的效果: ?
怎么让Spinner的显示有两行呢?当然这两行的内容肯定可以不一样,不然就没有意义了.....
我觉得应该有不知一种方法能实现;我的思路是在外层套一个RelativeLayout,然后先设置一个Spinner,然后下边放一个TextView,再设置好Spinner的paddingTop,值为 textview的textsize;
这样效果就出来了....有人可能会问为什么要先放Spinner呢?Spinner应该在下边才对啊,如果是RelativeLayout没有影响的话,那位置也是随意的啊?
     我一开始也是这样想的,就先放的是TextView,结果大致的布局效果是实现了,但是发现了一个小问题;当点击Spinner的时候,上边的TextView的子的颜色会变深,被Spinner点击时的selector盖住
如果对Android界面布局的构成有了解的话就会明白为什么后方TextView就不会被盖住了,因为Android的布局是从上到下以压栈的形式一个一个画的,这样先出现的布局就会在下边,后出现的就在上边,所以不会被挡住了.....这样就完美的实现了上面的效果了....

Android 默认显示两行的Spinner,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。