当我将android support lib从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>
它在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:
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'
}
发布于 2015-11-02 18:16:35
最后,我突然有了一个想法。为什么不试着用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);
// ...
}
发布于 2017-03-20 17:45:38
在XML
中设置此属性
android:paddingStart="0dp"
发布于 2016-08-05 12:13:37
尝试向xml文件中的0dp
添加参数paddingStart
和paddingEnd
。如果你的应用程序与Rtl兼容,你需要添加它们来可视化没有填充的seekBar,否则即使在Ltr语言中使用它,它也会显示填充。
https://stackoverflow.com/questions/33473849
复制相似问题