Spinner Dropdown-Pfeil
Ich versuche, erhalten eine benutzerdefinierte Spinner wie dieser:
aber ich war nur in der Lage, diese zu bekommen:
Wie Sie sehen können habe ich mehrere Probleme.
- Obwohl ich noch eine zusätzliche Pfeil, ich sehe immer noch das original.
- Meine custom-Pfeil wird angezeigt auf jeder Zeile.
- Wie reguliere ich die benutzerdefinierten Pfeil die Abmessungen und das layout position?
- Wie erstelle ich unterstrichenen Zeilen?
Dies ist mein code:
onCreateView()
:
Spinner spinner = (Spinner) rootView.findViewById(R.id.spinner);
this.arraySpinner = new String[]{
"Seleziona una data",
"03 Agosto 2015",
"13 Giugno 2015",
"27 Novembre 2015",
"30 Dicembre 2015",
};
ArrayAdapter<String> adapter = new ArrayAdapter<>(
getActivity(),
R.layout.row_spinner,
R.id.weekofday,
arraySpinner);
spinner.setAdapter(adapter);
res/layout/row_spinner.xml
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp">
<TextView android:id="@+id/weekofday"
android:singleLine="true"
android:textSize="@dimen/textSize"
style="@style/SpinnerDropdown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView android:id="@+id/icon"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/spinner_arrow"/>
</LinearLayout>
BEARBEITEN
Habe ich entfernt, die ImageView
und fügte hinzu, eine zweite Spinner
erstellt von Ressource:
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
getActivity(),
R.array.date,
R.layout.spinner_layout);
spinnerDate.setAdapter(adapter);
Spinner spinnerTime = (Spinner) rootView.findViewById(R.id.spinnerTime);
ArrayAdapter<CharSequence> adapterTime = ArrayAdapter.createFromResource(
getActivity(),
R.array.ore,
R.layout.spinner_layout);
spinnerTime.setAdapter(adapterTime);
mit diesem layout:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:padding="8dp"
android:singleLine="true"
android:layout_height="wrap_content" android:layout_width="match_parent"/>
Ich habe dies nur Hinzugefügt, um mein style.xml
:
<style name="AppTheme" parent="@style/_AppTheme"/>
<!-- Base application theme. -->
<style name="_AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:dropDownSpinnerStyle">@style/SpinnerTheme </item>
<item name="android:windowActionBarOverlay">false</item>
<item name="colorPrimary">@color/ColorPrimary</item>
<item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
</style>
....
....
....
<!--Spinner styles 2-->
<style name="SpinnerTheme" parent="android:Widget.Spinner">
<item name="android:background">@drawable/apptheme_spinner_background_holo_light</item>
<item name="android:dropDownSelector">@drawable/apptheme_list_selector_holo_light</item>
</style>
<style name="SpinnerTheme.DropDown">
<item name="android:spinnerMode">dropdown</item>
</style>
<!-- Changes the spinner drop down item radio button style -->
<style name="DropDownItemSpinnerTheme" parent="android:Widget.DropDownItem.Spinner">
<item name="android:checkMark">@drawable/apptheme_btn_radio_holo_light</item>
</style>
<style name="ListViewSpinnerTheme" parent="android:Widget.ListView">
<item name="android:listSelector">@drawable/apptheme_list_selector_holo_light</item>
</style>
<style name="ListViewSpinnerTheme.White" parent="android:Widget.ListView.White">
<item name="android:listSelector">@drawable/apptheme_list_selector_holo_light</item>
</style>
<style name="SpinnerItemTheme"
parent="android:TextAppearance.Widget.TextView.SpinnerItem">
<item name="android:textColor">#000000</item>
</style>
aber es gibt kein Ergebnis ! Ich sehe immer noch diese:
EDIT 2
Habe ich geändert, die style.xml
in:
http://pastie.org/private/es40xgebcajajltksyeow
und das ist, was ich bekomme:
Nun anstatt Sie zu ersetzen den dropdown-Pfeil habe ich sogar ein zweites Symbol, das holo-checkbox (die gut funktioniert, immer gewählt, wenn ich wählen Sie ein Element), aber immer noch, wie bekomme ich nur die eine, die ich will??
manifest.xml
:
http://pastie.org/private/tu0izusbvvxe91lwmh9vnw
InformationsquelleAutor Cristiano Colacillo | 2015-06-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die
Imageview
in Ihre benutzerdefinierte layoutrow_spinner.xml
. Im Fall, brauchen Sie nicht zu erstellen, einen Pfeil in Ihrem benutzerdefinierten layout, denn wenn Sie das tun, werde es in jeder Zeile, wie es dir ergangen ist. Für das gleiche tun Sie zeigte uns, müssen Sie ändern Sie dieSpinner
Stil in Ihrestyles.xml
.Beispiel:
Für weitere Informationen werfen Sie einen Blick: http://androidopentutorials.com/android-how-to-get-holo-spinner-theme-in-android-2-x/
selector_spinner.xml:
styles.xml:
Am Ende, der spinner Aussehen wird als
Den folgenden code in
details_fragment_three.xml
Siehe mein edit....
Wie ich sehen konnte, in Ihrem code, Sie sind nur mit der
SpinnerTheme
und die anderen nicht. Der code, den ich gepostet haben, war nur ein Beispiel, so dass Sie brauchen, um zu ändern, fast alles. Sowieso, getestet habe ich einige code in meine app und es hat perfekt funktioniert. Werfen Sie einen Blick auf mein edit und denken Sie daran, dass es nur ein Beispiel, dann müssen Sie sich anpassen.Bitte zeigen Sie mir Ihre
AndroidManifest.xml
Sorry dude für die Verzögerung. Ich weiß nicht, was Los mit deinem Projekt. Ich habe alle der Weg, den ich kenne zu tun, der spinner bekommt die
style
und funktioniert nicht. Allerdings habe ich versucht, indemandroid:background="@drawable/spinner_item_drawable"
in jedem spinner-code in derdetails_fragment_three.xml
und es funktioniert perfekt. So brauchen Sie nicht, etwas zu tun in derstyle
. Check meine Antwort Bearbeiten und sehen, wie, dass ein Teil der code jetzt aussieht.InformationsquelleAutor Lennon Petrick
Können Sie Ihre eigenen drop-down-Bild;
InformationsquelleAutor siddharth patel