[英]Android spinner background problem API 21
I created a drawable for my spinner background.我为我的微调器背景创建了一个可绘制对象。 It should draw a border and put an arrow to the right side of the spinner.
它应该画一个边框,并在微调器的右侧放一个箭头。 It works perfectly with API 21+ devices as you see below;
它与 API 21+ 设备完美配合,如下所示;
But it doesn't work as i expected with API 21 and below devices.但是对于 API 21 及以下设备,它不能像我预期的那样工作。 Here how spinner looks like API 21;
这里微调器看起来像 API 21;
My spinner code;我的微调器代码;
val requesterSpinner = Spinner(context)
requesterSpinner.id = Spinner.generateViewId()
val requesterSpinnerParams = LayoutParams(300, LayoutParams.WRAP_CONTENT)
requesterSpinner.background = context.getDrawable(R.drawable.spinner_background)
requesterSpinner.layoutParams = requesterSpinnerParams
My drawable codes;我的可绘制代码;
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<layer-list>
<item>
<shape>
<solid
android:color="@color/white">
</solid>
<corners android:radius="3dp" />
<stroke
android:width="1dp"
android:color="#4d4d4d"/>
</shape>
</item>
<item android:drawable="@drawable/ic_baseline_arrow_drop_down_24"
android:gravity="right"
android:width="30dp">
</item>
</layer-list>
</item>
</selector>
And i saw something like android:width is not working for API'S below 23. I am okay with that but as you see the gravity attribute is not working as well.我看到类似 android:width 不适用于 API 低于 23 的东西。我对此没意见,但正如您所见,重力属性也不能正常工作。
How can i align arrow image to the right below API 23?如何将箭头图像对齐到 API 23 下方的右侧?
Spinner Code微调器代码
<Spinner
android:id="@+id/txt_unit"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_margin="1dp"
android:background="@drawable/bg_spinner_down_arrow"
android:drawableEnd="@drawable/ic_down_arrow_grey"
android:gravity="center"
android:paddingStart="@dimen/_5sdp"
android:paddingEnd="@dimen/_5sdp"
android:text="PCS" />
bg_spinner_down_arrow.xml bg_spinner_down_arrow.xml
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<layer-list>
<item>
<shape android:shape="rectangle">
<solid
android:color="@color/background_secondary" />
<corners
android:radius="@dimen/_4sdp"/>
</shape>
</item>
<item android:gravity="center_vertical|end"
android:end="@dimen/_2sdp"
android:left="@dimen/_2sdp"
android:drawable="@drawable/ic_down_arrow_grey">
</item>
</layer-list>
</item>
ic_down_arrow_grey.xml ic_down_arrow_grey.xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="16dp"
android:viewportWidth="16"
android:viewportHeight="16">
<group>
<clip-path android:pathData="M16,0l-0,16l-16,0l-0,-16z M 0,0"/>
<path
android:pathData="M3.5,6L8,10.5L12.5,6"
android:strokeAlpha="0.8"
android:strokeLineJoin="round"
android:strokeWidth="1.5"
android:fillColor="#00000000"
android:strokeColor="@color/mono_primary"
android:fillAlpha="0.8"
android:strokeLineCap="round"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.