首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在AppCompat 23.1.0中,安卓SeekBar不能全宽,甚至不能设置填充0

在AppCompat 23.1.0中,安卓SeekBar不能全宽,甚至不能设置填充0
EN

Stack Overflow用户
提问于 2015-11-02 16:54:33
回答 6查看 17.3K关注 0票数 29

当我将android support lib从23.0.1更新到23.1.0时,我发现SeekBar不再是全宽的了。

这是测试XML文件:

代码语言:javascript
复制
<?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>

它在support lib 23.0.1下运行良好,如下面的截图所示。SeekBar有默认的填充,当我设置padding=0手动时,它可以是全宽的。而且AppCompatSeekBar还不存在。

但是在support lib 23.1.0下,我是否设置了多少填充,SeekBar和AppCompatSeekBar没有任何改变,就像下面的截图。

那么,这是不是支持库的bug,有没有人遇到过这个问题,怎么解决?

谢谢~!

更新:

这完全把我搞糊涂了,我刚做了另一个测试,我创建了一个新的项目,不管我用的是AppCompat 23.0.1还是23.1.0,SeekBar都不能是全宽后设置padding=0,( compileSdkVersion是23,buildToolsVersion是"23.0.1",targetSdkVersion是23)。无论如何,我想知道如何在设置padding=0不起作用时使SeekBar全宽。

build.gradle:

代码语言:javascript
复制
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'
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-11-02 18:16:35

最后,我突然有了一个想法。为什么不试着用java代码修改它呢?它起作用了!以下是示例代码:

代码语言:javascript
复制
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);

    // ...
}
票数 36
EN

Stack Overflow用户

发布于 2017-03-20 17:45:38

XML中设置此属性

代码语言:javascript
复制
android:paddingStart="0dp" 
票数 32
EN

Stack Overflow用户

发布于 2016-08-05 12:13:37

尝试向xml文件中的0dp添加参数paddingStartpaddingEnd。如果你的应用程序与Rtl兼容,你需要添加它们来可视化没有填充的seekBar,否则即使在Ltr语言中使用它,它也会显示填充。

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33473849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档