我有一个高度为16dp
的搜索栏。
minHeight="16dp"
maxHeight="16dp"
现在我必须使用自定义进度drawable。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape android:shape="rectangle">
<solid android:color="xxx"/>
<corners android:radius="6dp"/>
</shape>
</item>
<item
android:id="@android:id/secondaryProgress"
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp">
<clip>
<shape android:shape="rectangle">
<solid android:color="xxx"/>
<corners android:radius="4dp"/>
</shape>
</clip>
</item>
<item
android:id="@android:id/progress"
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp">
<clip>
<shape android:shape="rectangle">
<solid android:color="xxx"/>
<corners
android:radius="4dp"/>
</shape>
</clip>
</item>
如您所见,我使用left
,top
,right
,bottom
来插入progress
和secondaryProgress
。
它的效果远高于Android M ,但是在Android M之下,porgress和secondaryProgress填充了background
,换句话说background
项目由progress
覆盖}和secondaryProgress
。但我希望进度和secondaryProgress小于背景项。
答案 0 :(得分:0)
有一个解决方案:
LayerDrawable drawable = (LayerDrawable) mSeekBar.getProgressDrawable();
// secondaryProgress
drawable.setLayerInset(1, padding, padding, padding, padding);
// progress
drawable.setLayerInset(2, padding, padding, padding, padding);
任何人都可以解释为什么在API 23下面的xml中设置left
right
top
bottom
无用吗?