我只是想知道是否可以简单地删除微调器的下拉箭头?我的微调器的背景布局中有一个可绘制的箭头,但是系统默认箭头出现在微调器的右侧,我想将其删除。
这是我的活动布局的微调器 xml 代码
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinnerSelectStaff"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="18dp"
android:layout_marginRight="18dp"
android:gravity="center"
android:dropDownSelector="@drawable/empty"/>
我的自定义微调器布局如下所示:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:gravity="center"
android:textSize="20sp"
android:background="@drawable/spinner_text_shape"
android:drawableRight="@drawable/ic_keyboard_arrow_down_black_24dp"
android:textColor="@color/primary_text" />
谢谢!
布局 xml 文件中的背景 @null 也可以解决问题,如果您不想声明特定样式:
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"/>
这可能对你有帮助
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style parent="@android:style/Widget.Spinner" name="SpinnerwithNoArrow">
<item name="android:background">@android:drawable/edit_text</item>
</style>
</resources>
然后:
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinnerSelectStaff"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="18dp"
android:layout_marginRight="18dp"
android:theme="@style/SpinnerwithNoArrow"
android:gravity="center"
android:dropDownSelector="@drawable/empty"/>
在你的微调器中使用这种风格
请尝试这个简单的方法:
android:background="@android:color/transparent"
这两个答案对我都没有帮助,所以这是一个非常简单的单行解决方案。
//some spinner initialisation stuff->
mySpinner.setAdapter(adapter);
//some spinner initialisation stuff->
mySpinner.getBackground().setColorFilter(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
我无法确定它是否仅适用于默认的微调器布局,但它与我为其他需求创建的自定义布局配合得很好。