Spinner-DropDown下划线和位置

当使用了appcompat和Theme.AppCompat.Light主题时,Spinner会被替换为AppCompatSpinner。随之Spinner的特性也会发生一些变化,比如Spinner为DropDown mode时,DropDown的默认位置并没有出现在Spinner text的下面,而且覆盖在了Spinner text的上面。

加入android:dropDownVerticalOffset=”40dp”
使DropDown向下偏移40个dp。DropDown是一个PopupWindow。

"@+id/layout_videoplayer_playrate"
            style="@style/VideoDropDownNav"
            android:layout_width="65dp"
            android:spinnerMode="dropdown"
            android:dropDownVerticalOffset="40dp"
            android:layout_height="fill_parent"
            android:layout_toLeftOf="@id/layout_videoplayer_seperator1"
            android:layout_toStartOf="@id/layout_videoplayer_seperator1" />

android:dropDownHorizontalOffset=”XXdp”,应该是水平方向的偏移,但是我这里使用并没有生效。

这两张图就是设置了verticalOffset前后的情况

stackoverflow上有关的讨论http://stackoverflow.com/questions/21503142/android-spinner-dropdownhorizontaloffset-not-functioning-but-dropdownverticleoff

这个试了好几种,比如类似下面的做法,修改style,都没有生效。


"@+id/layout_videoplayer_playrate"
            style="@style/VideoDropDownNav"
            android:layout_width="65dp"
            android:spinnerMode="dropdown"
            android:dropDownVerticalOffset="40dp"
            android:layout_height="fill_parent"
            android:layout_toLeftOf="@id/layout_videoplayer_seperator1"
            android:layout_toStartOf="@id/layout_videoplayer_seperator1" />
//分隔符
\

最后修改了Activity的Theme,里面最主要的是dropDownListViewStyle起了作用。


\

\

这种方案在一个activity里多个spinner,多个样式时没法解决。多个时不如直接修改DropDown的item对应的layout,直接在里面加入divider。

相关资料http://stackoverflow.com/questions/10916658/android-cannot-style-spinner-divider/13144302#13144302

你可能感兴趣的:(Android应用)