当我将android支持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>
Run Code Online (Sandbox Code Playgroud)
它在支持lib 23.0.1下运行良好,如下面的截图.SeekBar有默认填充,当我设置padding = 0 manual时,它可以是全宽.和AppCompatSeekBar尚不存在.
但是在lib 23.1.0的支持下,我是否设置了多少填充,SeekBar和AppCompatSeekBar没有任何变化,如下面的截图.
所以,这是支持lib的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" …Run Code Online (Sandbox Code Playgroud) 我的代码:
const WEEKDAYS_SHORT: string[] = ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam']
Run Code Online (Sandbox Code Playgroud)
错误消息来自TypeScript(3.0)编译器:
TS2322:类型'string []'不能赋值为'[string,string,string,string,string,string,string]'.'string []'类型中缺少属性'0'.
如果我更改string[]为ReadonlyArray<string>,则错误消息变为:
TS2322:类型'ReadonlyArray'不能赋值为'[string,string,string,string,string,string,string]'.'ReadonlyArray'类型中缺少属性'0'.
我的tsconfig.json:
{
"compilerOptions": {
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["es6", "dom"],
"module": "es6",
"moduleResolution": "node",
"sourceMap": true,
"target": "es5",
"jsx": "react",
"strict": true
},
"exclude": [
"**/*.spec.ts",
"node_modules",
"vendor",
"public"
],
"compileOnSave": false
}
Run Code Online (Sandbox Code Playgroud)
如何在TypeScript中定义只读数组?