quand je mets à jour Android supporte la lib du 23.0.1 au 23.1.0, je trouve que la SeekBar n'est plus pleine largeur.
voici le fichier XML de test:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:divider="@drawable/space_divider"
Android:orientation="vertical"
Android:padding="8dp"
Android:showDividers="middle">
<View
Android:layout_width="match_parent"
Android:layout_height="20dp"
Android:background="@Android:color/black"/>
<!-- default SeekBar -->
<SeekBar
Android:layout_width="match_parent"
Android:layout_height="10dp"
Android:progress="50"
Android:progressTint="@Android:color/holo_red_dark"/>
<!-- padding=0 -->
<SeekBar
Android:layout_width="match_parent"
Android:layout_height="10dp"
Android:padding="0dp"
Android:progress="50"
Android:progressTint="@Android:color/holo_red_dark"/>
<!-- padding=40 -->
<SeekBar
Android:layout_width="match_parent"
Android:layout_height="10dp"
Android:padding="40dp"
Android:progress="50"
Android:progressTint="@Android:color/holo_red_dark"/>
<Android.support.v7.widget.AppCompatSeekBar
Android:layout_width="match_parent"
Android:layout_height="10dp"
Android:padding="0dp"
Android:progress="50"/>
</LinearLayout>
Cela fonctionne bien sous le support lib 23.0.1, comme la capture d'écran suivante. SeekBar a un rembourrage par défaut, lorsque je mets padding = 0 manuellement, il peut être pleine largeur. et AppCompatSeekBar n'existe pas encore.
mais sous la prise en charge de la bibliothèque 23.1.0, que je définisse la quantité de rembourrage, SeekBar et AppCompatSeekBar n'ont aucun changement, comme la capture d'écran suivante.
alors, est-ce le bug de support lib, n'importe quel organisme rencontre ce problème et comment le résoudre?
merci ~!
mettre à jour:
. 23, buildToolsVersion est "23.0.1", targetSdkVersion est 23). de toute façon, je veux savoir comment faire SeekBar pleine largeur lorsque set padding = 0 ne fonctionne pas.
le build.gradle:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.test.seekbar"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:23.0.1'
}
enfin, j'ai juste une pensée soudaine. pourquoi ne pas essayer de le modifier par Java code. Cela fonctionne! voici l'exemple de code:
protected void initViews(Context context) {
LayoutInflater.from(context).inflate(getLayoutResId(), this);
ButterKnife.bind(this);
// set style, just once
seekBar.setProgress(0);
seekBar.setMax(0);
seekBar.setPadding(0, 0, 0, 0);
// ...
}
Définissez ces attributs dans XML
Android:paddingStart="0dp"
Essayez d'ajouter les paramètres paddingStart
et paddingEnd
à 0dp
dans le fichier xml. Si votre application est compatible avec Rtl, vous devrez en ajouter afin de visualiser la barre de recherche sans remplissage, sinon elle s'affichera avec remplissage même si vous l'utilisez dans un langage Ltr.
Comme Didac l'a mentionné, vous pouvez définir le remplissage à 0 en xml.
Mais assurez-vous de définir le remplissage après avoir défini le progressTint
ou progressDrawable
.
J'ai eu un problème similaire (où je définissais progressDrawable). Une fois que j'ai défini le remplissage à 0 après avoir défini le progressDrawable
, le rembourrage seekbar
a disparu
si vous recherchezBar.setPadding (0, 0, 0, 0); peut être le pouce ne peut pas montrer complet。 Tout d'abord, vous devriez trouver le résultat. En fait, dans le style de barre de recherche, vous pouvez le trouver.
<style name="Base.Widget.AppCompat.SeekBar" parent="Android:Widget">
<item name="Android:indeterminateOnly">false</item>
<item name="Android:progressDrawable">@drawable/abc_seekbar_track_material</item>
<item name="Android:indeterminateDrawable">@drawable/abc_seekbar_track_material</item>
<item name="Android:thumb">@drawable/abc_seekbar_thumb_material</item>
<item name="Android:focusable">true</item>
<item name="Android:paddingLeft">16dip</item>
<item name="Android:paddingRight">16dip</item>
</style>
alors changez le style avec paddingLeft et paddingRight