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:
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!
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;) –