2016-08-04 32 views
1

Ich verwende diese library für VerticalSeekBars in meiner Android-Anwendung. In meiner App lege ich mehrere vertikale Suchleisten horizontal (wie etwa 10-15?) Mit LinearLayout und layout_weight Properties. Außerdem verwende ich einen Daumen, der den Fortschritt sollte (im wesentlichen auf dem Fortschritt der Verlegung) größer sein als und eine benutzerdefinierte ziehbar für den Fortschritt als solche:Seekbar Fortschritt Drawable Ändern der Größe in API 22 vs API 23

<?xml version="1.0" encoding="utf-8"?> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:id="@android:id/background" 
       android:height="10dp" 
       android:gravity="center_vertical"> 
     <shape android:shape="rectangle"> 
      <corners android:radius="500dp"/> 
      <solid android:color="#000000"/> 
     </shape> 
    </item> 
</layer-list> 

Auf API 23 (die ich Glaube ist Marshmallow?), alles richtet sich richtig und die Größe über verschiedene Bildschirmgrößen richtig. Genial. Bei API 22 und darunter passt sich der Fortschrittscode jedoch nicht an. Stattdessen wird die Größe vergrößert, damit der Suchleisten-Daumen in den Fortschritt passt. Ich habe versucht, das Zeichen in meinem Code zu ändern, aber das tut auch nichts. Ich habe es herausgezogen zu zeigen, was ich meine:

Picture example - excuse my poor drawing skills :(

Wie erhalte ich API 22/unter 23 das gleiche Verhalten API abgeglichen mit dem seekbar zu erreichen?

Hier ist ein Beispiel meiner VerticalSeekBar Setup:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="1"> 

    <com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="center" 
      android:layout_weight="0.5"> 

      <com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar 
       android:layout_width="0dp" 
       android:layout_height="0dp" 
       android:max="100" 
       android:progress="50" 
       app:seekBarRotation="CW270" 
       android:progressDrawable="@drawable/custom_track" 
       android:splitTrack="false"/> 

    </com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper> 

      <com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="center" 
      android:layout_weight="0.5"> 

      <com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar 
       android:layout_width="0dp" 
       android:layout_height="0dp" 
       android:max="100" 
       android:progress="50" 
       app:seekBarRotation="CW270" 
       android:progressDrawable="@drawable/custom_track" 
       android:splitTrack="false"/> 

    </com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper> 

</LinearLayout> 

Dank!

Antwort

1

Set maxHeight wie folgt aus:

<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar 
     ... 
     android:maxHeight="2dp" 
     .../> 
+0

Das ist die richtige Antwort ... kann nicht glauben, dass ich nicht über diese Eigenschaft früher dachte! Die +50 Bounty gehört dir, wenn 21 Stunden vergangen sind;) –