android - style - 안드로이드 스피너 높이




Android:Spinner 위젯의 텍스트 색상 속성이 숨어있는 곳은 어디입니까? (5)

드롭 다운에서 항목을 선택한 후 회 전자 단추에 표시된 단일 항목의 텍스트 색을 변경하려고합니다. 나는 한시간 동안 Android SDK에서 themes.xml과 styles.xml을 살펴 봤는데 Spinner가 색상 값을 어디서 얻고 있는지 찾을 수 없습니다.

명확히하기 위해 드롭 다운 항목의 색상을 변경하려고하지 않고 드롭 다운이없는 경우 회 전자의 표시된 텍스트 색상을 변경하려고합니다. 스피너의 '버튼'텍스트라고 부를 수 있습니다.


Spinner 객체에서 setOnItemSelectedListener를 사용할 수 있습니다.

spinnerObject.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
        ((TextView)parentView.getChildAt(0)).setTextColor(Color.rgb(249, 249, 249));
        // OR ((TextView)parentView.getChildAt(0)).setTextColor(Color.RED);
    }
});

나는 그 텍스트와 관련된 색이 없다고 생각한다. 안드로이드 코드에서 미리 정의 된 가능성이 높기 때문에 스피너의 색상을 변경하려는 경우 자신 만의 스타일을 만들어야 할 수 있습니다.

여기에는 ondraw () 메서드를 변경하는 방법과 회 전자를 그리는 방법이 포함됩니다.

이 문제를 해결할있는 유일한 방법은 회 전자의 스타일 속성입니다.

출처 : http://developer.android.com/reference/android/widget/Spinner.html

도움이 될 수 있습니다.

http://www.designerandroid.com/?p=28


매우 간단합니다. 내가 너를 찾고 있었어. 스타일을 만들고 스피너에 맞추기 만하면 돼.

먼저 Style.xml 에서 테마를 만듭니다.

 <style name="spinnerTheme" parent="android:Theme">
    <item name="android:textColor">@color/gray_dark</item>
</style>

귀하의 스피너를 설정 한 xml 파일에 다음을 추가하십시오 :

android : theme = "@ style / spinnerTheme "

                       <Spinner
                        android:id="@+id/spinner"
                        android:layout_width="match_parent"
                        android:layout_height="50dp"
                        android:padding="10dp"
                        android:paddingBottom="5dp"
                        android:paddingLeft="10dp"
                        android:layout_span="3"
                        android:layout_weight="1.3"
                        android:theme="@style/spinnerTheme"
                        android:textSize="12sp"
                        android:spinnerMode="dialog"
                        android:clickable="false"/>

코딩 즐기기


아마도 styles.xml의이 비트 일 것 같습니다.

<style name="Widget.TextView.SpinnerItem">
    <item name="android:textAppearance">@style/TextAppearance.Widget.TextView.SpinnerItem</item>
</style>
<style name="Widget.DropDownItem.Spinner">
    <item name="android:checkMark">?android:attr/listChoiceIndicatorSingle</item>
</style>

- = EDIT = - 결과는 다음과 같습니다.

다음은 완료된 방법입니다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MooTheme" parent="android:Theme">
        <item name="android:spinnerItemStyle">@style/MooSpinnerItem</item>
    </style>

    <style name="MooSpinnerItem" parent="android:Widget.TextView.SpinnerItem">
        <item name="android:textAppearance">@style/MooTextAppearanceSpinnerItem</item>
    </style>

    <style name="MooTextAppearanceSpinnerItem" parent="android:TextAppearance.Widget.TextView.SpinnerItem">
        <item name="android:textColor">#F00</item>
    </style>
</resources>

그런 다음 AndroidManifest.xml의 application 태그에이를 추가하십시오.

android:theme="@style/MooTheme"

이 나를 위해 일하고 스피너 항목에 대한 사용자 정의 정의와 함께 자신의 레이아웃 파일을 만듭니다.

custom_spinner.xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/txt_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textColor="#ffffff" />

어댑터를 사용하여 스피너 항목 변경

Spinner spinner= (Spinner) findViewById(R.id.spinner1);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.by_loc_array,R.layout.txt_spinner);
spinner.setAdapter(adapter);






spinner