假设这是一个“Spinner”,你如何设置默认图标?
目前我的只显示第一项(蓝牙)的图标。
目前我的只显示第一项(蓝牙)的图标。
![enter image description here](https://istack.dev59.com/6huQD.webp)
ShareActionProvider
,它是 ActionProvider
的一个特殊子类。ActionProvider
,你可以将其视为菜单项并添加图标。ActionProvider
文档:<item android:id="@+id/my_menu_item"
android:title="Title"
android:icon="@drawable/my_menu_item_icon"
android:showAsAction="ifRoom"
android:actionProviderClass="foo.bar.SomeActionProvider" />
由于我没有使用过这些,所以不知道是否所有的ActionProvider
都有旋转三角形... 我猜是吗?
更新:
我刚想到SpinnerAdapter
的工作原理还有另一种方法可以实现。如果您在Spinner
中使用自定义的SpinnerAdapter
子类,它将有两个方法,您可以按照以下方式操作:
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent)
{
// return the view to display when you are looking at the dropdown,
// so this will probably be a TextView and/or an ImageView
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
// This will show when the item at the provided position is
// selected. At this point you could return the ImageView you want to
// always appear at the top, such as the share icon.
}
<item name="android:actionBarItemBackground" tools:ignore="NewApi">@drawable/abc_spinner_ab_default_holo_light</item>
<item name="actionBarItemBackground">@drawable/abc_spinner_ab_default_holo_light</item>
在尝试此 hack 时,请记住 ActionBar with AppCompat actionBarItemBackground not working。
我用一个"hack"解决了这个问题,就是将一个ImageView
放在Spinner
的上面。
<Spinner
android:layout_width="40dp"
android:layout_height="40dp"
/>
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_share"
android:adjustViewBounds="true"
android:background="@color/same_as_parent_background"
/>