spinner를 커스터마이징 하여 사용해 보려고 기본 spinner을 분석 중입니다.
android.R.layout의 소스를 찾아가려면
SDK의 platform폴더 아래에서 찾을 수 있더군요.
찾아가면 보통 컨트롤(뷰) 태그에
style="?android:attr/XXXX" 가 적용됩니다.
그래서 attr.xml을 찾아갔습니다.
그랬더니 XXXX라는 속성이 format="reference"라고 나오는군요..
format="reference"에서 더 이상 안으로 들어가서 파해져볼 수가 없는데
어떻게 접근을 해야하나요.
상세히 말하자면
android.R.layout.simple_spinner_item을 수정해보려 합니다.
그런데
simple_spinner_item.xml은
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/spinnerItemStyle"
android:singleLine="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" /> |
style="?android:attr/spinnerItemStyle" 을 찾아가면
<!-- Default spinner item style. --> <attr name="spinnerItemStyle" format="reference"/> |
속성의 상세 정보(reference가 어떻게 구성되어있는지)를 알아야 저가 원하는 디자인으로 바꿀수 있을 것같은데
어떻게 더 알아봐야하는지 방법을 모르겠네요..
잘못 접근하고 있는 건가요?
이까지 읽어주셔 감사합니다...도움에 손길이 필요합니다..^^
저는 android.R.layout.simple_spinner_item
이부분을 R.layout.test_textview_item이라는 레이아웃을 만들어 기본
TextView로 수정해봤습니다. 그랬더니 spinner_dropdown_item에서 선택한 값이 텍스트에 안 보이더군요..
test_textview_item.xml
<?xml version="1.0" encoding="UTF-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/test_text" android:singleLine="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" /> |
위와 같은 스타일(style="?android:attr/spinnerItemStyle")을 적용하면 동일한 모양이 나오겠지만
저는 모양을 바꿔보려 합니다. 어떻게 해야하나요?




커스텀한 Spinner를 사용하시싶으신거면
custom spinner로 검색하셔도 자료가 나오는데.
성공하시면 자답좀 달아주세요.