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的布局是从上到下以压栈的形式一个一个画的,这样先出现的布局就会在下边,后出现的就在上边,所以不会被挡住了.....这样就完美的实现了上面的效果了....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值