Подтвердить что ты не робот

Android SeekBar не может быть полной ширины, даже если установить дополнение 0 в AppCompat 23.1.0

когда я обновляю поддержку поддержки Android с 23.0.1 до 23.1.0, я обнаружил, что SeekBar уже не является полной шириной.

это тестовый XML файл:

<?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>

Он хорошо работает под поддержкой lib 23.0.1, как и следующий скриншот. SeekBar имеет заполнение по умолчанию, когда я устанавливаю padding = 0 manual, он может быть полной ширины. и AppCompatSeekBar еще не существует.

введите описание изображения здесь

но под поддержкой lib 23.1.0, независимо от того, установлен ли размер заполнения, SeekBar и AppCompatSeekBar не имеют каких-либо изменений, например, следующий скриншот.

введите описание изображения здесь

Итак, является ли это ошибкой поддержки lib, любой орган отвечает этой проблеме и как ее решить?

спасибо ~!

обновление:
Это полностью смутило меня, у меня просто еще один тест, я создаю новый проект, независимо от того, пользуюсь ли я AppCompat 23.0.1 или 23.1.0, SeekBar не может быть полной ширины после установки padding = 0 (compileSdkVersion равно 23, buildToolsVersion - 23.0.1 ", targetSdkVersion - 23). во всяком случае, я хочу знать, как сделать SeekBar полной шириной, когда set padding = 0 не работает.

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'
}
4b9b3361

Ответ 1

Наконец, я просто подумал. почему бы не попробовать изменить его с помощью java-кода. Оно работает! следующий пример кода:
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);

    // ...
}

Ответ 2

Установите эти атрибуты в XML

android:paddingStart="0dp" 

Ответ 3

Попробуйте добавить параметры paddingStart и paddingEnd в 0dp в файле XML. Если ваше приложение совместимо с Rtl, вам нужно будет добавить их, чтобы визуализировать seekBar без отступов, иначе оно будет отображаться с отступами, даже если вы используете его на языке Ltr.

Ответ 4

Как упоминал Дидак, вы можете установить отступ в 0 в xml.

Но убедитесь, что вы установили отступы после того, как вы установили progressTint или progressDrawable.

У меня была похожая проблема (где я устанавливал progressDrawable). После того, как я установил заполнение на 0 после установки progressDrawable, отступы на seekbar исчезли