Spinner-DropDown 밑줄 및 위치
appcompat와 Theme을 사용한 경우AppCompat.Light 주제에서 Spinner는 AppCompatSpinner로 바뀝니다.이에 따라 Spinner의 특성도 약간의 변화가 발생할 수 있다. 예를 들어 Spinner가 DropDown 모델일 때 DropDown의 기본 위치는 Spinner text 아래에 나타나지 않고 Spinner text 위에 덮어씌웠다.
android:dropDownVertical Offset="40dp"를 추가하여 DropDown을 40dp 아래로 이동시킵니다.DropDown은 PopupWindow입니다.
<Spinner
android:id="@+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:drop Down Horizontal Offset = "XXdp"는 수평 방향의 편이일 것입니다. 그러나 여기에서 사용하면 효과가 없습니다.
이 두 장의 그림은vertical Offset의 전후 상황을 설정한 것이다
stackoverflow에 대한 토론http://stackoverflow.com/questions/21503142/android-spinner-dropdownhorizontaloffset-not-functioning-but-dropdownverticleoff
DropDown divider 색상 및 크기
이것은 여러 가지를 시험해 보았는데, 예를 들면, 아래의 방법과 유사하게 스타일을 수정하였는데, 모두 효력이 발생하지 않았다.
<Spinner
android:id="@+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" /> //
\<style name="VideoDropDownNav" parent="@android:style/Widget.Spinner">
<item name="android:background">@drawable/videoplayer_alpha_background</item>
<item name="android:popupBackground">@drawable/videoplayer_top_layout_background</item>
<item name="android:dropDownSelector">@null</item>
<item name="android:dropDownVerticalOffset">40dp</item>
<item name="android:divider">#aaaaaa</item>
<item name="android:dividerHeight">1dp</item>
</style>
마지막으로Activity의 Theme를 수정했는데 그 중에서 가장 중요한 것은drop Down List View Style이 작용했다.
\<style name="AppThemeNoActionBar" parent="AppTheme">
<item name="windowNoTitle">true</item>
<!-- <item name="android:windowActionBar" tools:targetApi="11">false</item> -->
<item name="windowActionBar">false</item>
<item name="actionBarStyle">@style/Styled.ActionBar</item>
<item name="android:actionBarStyle" tools:targetApi="11">@style/Styled.ActionBar</item>
<item name="android:actionMenuTextAppearance" tools:targetApi="11">@style/MenuTextStyle</item>
<item name="actionMenuTextAppearance">@style/MenuTextStyle</item>
<item name="android:dropDownListViewStyle">@style/SpinnerDropDownStyle</item>
<item name="vpiIconPageIndicatorStyle">@style/Widget.IconPageIndicator</item>
<item name="vpiTabPageIndicatorStyle">@style/Widget.TabPageIndicator</item>
</style>
\<style name="SpinnerDropDownStyle" parent="android:style/Widget.ListView.DropDown">
<item name="android:divider">#aaaaaa</item>
<item name="android:dividerHeight">1px</item>
</style>
이런 방안은 하나의activity에 여러 spinner가 있고 여러 스타일이 있을 때 해결할 수 없다.여러 개가 있을 때 DropDown의 item에 대응하는layout을 직접 수정하고divider를 직접 추가합니다.
관련 자료http://stackoverflow.com/questions/10916658/android-cannot-style-spinner-divider/13144302#13144302
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.