style - Android SeekBar no puede ser de ancho completo ni siquiera configurar el relleno 0 en AppCompat 23.1.0
seekbar set value (4)
cuando actualizo el soporte para Android lib 23.0.1 a 23.1.0, encuentro que SeekBar ya no es de ancho completo.
Este es el archivo XML de prueba:
<?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>
Funciona bien bajo la versión de soporte 23.0.1, como en la siguiente captura de pantalla. SeekBar tiene un relleno predeterminado, cuando configuro el relleno = 0 manual, puede ser de ancho completo. y AppCompatSeekBar no existe todavía.
pero bajo la versión de soporte 23.1.0, ya sea que establezca la cantidad de relleno, SeekBar y AppCompatSeekBar no tienen ningún cambio, como la siguiente captura de pantalla.
Entonces, ¿es este el error de la biblioteca de soporte, cualquier organismo resuelve este problema y cómo resolverlo?
gracias ~!
actualizar:
Me confundió totalmente, solo tengo otra prueba, creo un nuevo proyecto, ya sea que use AppCompat 23.0.1 o 23.1.0, SeekBar tampoco puede ser de ancho completo después de establecer padding = 0, (compileSdkVersion es 23, buildToolsVersion es " 23.0.1 ", targetSdkVersion es 23). de todos modos, quiero saber cómo hacer que el ancho completo de SeekBar cuando set padding = 0 no funcione.
el 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''
}
Como mencionó Didac, puede establecer el relleno en 0 en xml.
Pero asegúrese de establecer el relleno después de establecer progressTint
o progressDrawable
.
Tuve un problema similar (donde estaba configurando progressDrawable). Una vez que establezca el relleno en 0 después de configurar el progressDrawable
, el relleno de la seekbar
ha ido
Establecer estos atributos en XML
android:paddingStart="0dp"
Finalmente, solo tengo un pensamiento repentino. ¿Por qué no intentar modificarlo por código java. ¡Funciona! A continuación se muestra el código de ejemplo:
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);
// ...
}
Intente agregar los parámetros "PadingStart" y "PaddingEnd" a 0dp en el archivo xml. Si su aplicación es compatible con Rtl, deberá agregarlas para visualizar la barra de búsqueda sin relleno. De lo contrario, se mostrará con el relleno incluso si se usa en un idioma Ltr.
Espero eso ayude. Saludos