2010-12-31 9 views

Antwort

1

Für Leute mit dem gleichen Problem habe ich nach fast gab ich eine Idee, wie man den Teiler bekommen.

ich hinzugefügt, um die Trennlinie an der Unterseite meines benutzerdefinierten Layouts für jedes Element

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout android:id="@+id/RelativeLayout01" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" style="@style/ListItem2"> 

    <TextView android:id="@+id/Text" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:layout_alignParentLeft="true" 
     style="@style/SpinnerView_Text" android:paddingLeft="10dip" /> 

    <ImageView android:id="@+id/icon" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:src="@drawable/arrowright" 
     android:layout_alignParentRight="true" android:layout_centerInParent="true" 
     android:layout_marginRight="20dip" /> 

</RelativeLayout> 

<ImageView android:id="@+id/Divider1" android:layout_width="fill_parent" 
    android:layout_height="1dip" style="@style/Divider"></ImageView> 

+0

können Sie mehr xml posten? Zum Beispiel das äußerste Layout und den Stil/Divider.thank you – pengwang

11

ich eine richtige Lösung für dieses Problem finden verwaltet (ohne einschließlich der Teiler in der einzelnen Artikel Layout).

Was Sie tun müssen, ist in Ihrer Tätigkeit ist das Thema

 <item name="android:dropDownListViewStyle">@style/App.Style.Spinner</item> 

zu definieren und dann mit

<style name="App.Style.Spinner" parent="@style/Widget.Sherlock.Light.ListView.DropDown"> 
      <item name="android:dividerHeight">10dip</item> 
      <item name="android:divider">@drawable/mydivider</item> 
    </style> 
+6

Das ist großartig, es sei denn, Sie möchten diesen Stil nur auf 1 Spinner in der Aktivität anwenden. – Paul

+1

Wo definieren wir den Artikel: ' @ style/App.Style.Spinner' Was meinst du mit "in Ihrer Aktivität Thema"? Bin ein bisschen verwirrt darüber. –

+0

@ojonugwaochalifu Sie müssen dieses Element als Teil des Themas Ihrer Aktivität definieren ... – Talihawk

9

Das ist für mich gearbeitet, um die richtige Art zu erstellen:

<style name="SpinnerStyle" parent="Widget.AppCompat.ListView.DropDown"> 
     <item name="android:divider">#d1d1d1</item> 
     <item name="android:dividerHeight">0.5dp</item> 
    </style> 

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="android:dropDownListViewStyle">@style/SpinnerStyle</item> 

Der Vorteil Dies zu verwenden ist, dass es nicht den Welleneffekt bei Hover entfernt.

+1

funktioniert es +1 für einfache und einfache Lösung. Danke –

1

Basierend auf @Talihawk Antwort, ich habe es für spezifische nur Spinner funktioniert. Anstatt Ihre Aktivität Thema einstellen, stellen Sie das Thema direkt für die Spinner Ansicht:

<style name="MatchSpinnerStyle" parent="android:style/Widget.ListView.DropDown"> 
    <item name="android:divider">#123456</item> 
    <item name="android:dividerHeight">1dp</item> 
</style> 

<style name="MatchSpinnerTheme" parent="AppTheme"> 
    <item name="android:dropDownListViewStyle">@style/MatchSpinnerStyle</item> 
</style> 

und

<android.support.v7.widget.AppCompatSpinner 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"   
    android:theme="@style/MatchSpinnerTheme"/> 
+0

+1. Außerdem muss ich hinzufügen, dass Sie Ihren Teiler in einem "Drawable" definieren können und ihn anstelle von "# 123456" referenzieren können. Oh, und 'android: theme' muss anstelle von' stlye = "@ stye/..." 'verwendet werden – Sevastyan

Verwandte Themen