更改工具栏中的微调器下拉图标
Change Spinner dropdown icon in toolbar
我正在尝试将工具栏中的图标用作微调器...这是我的 menu.xml
:
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="@+id/action_search_cat"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="androidx.appcompat.widget.SearchView"
android:title=".."/>
<item
android:id="@+id/action_filter_rating"
app:showAsAction="always"
android:actionViewClass="android.widget.Spinner"
android:icon="@drawable/ic_star" // THIS LINE HAVE NO EFFECT
android:title=".." />
<item
android:id="@+id/action_manage_category"
android:title=".."
app:showAsAction="never" />
<item
android:id="@+id/action_export_csv"
android:title="@string/export"
app:showAsAction="never" />
现在下拉图标是默认图标 (android.widget.Spinner),有没有办法覆盖该图标?我想将微调器保留在菜单项中。
我想更改此图标:
我将接受所有其他解决方案,以在工具栏中实现自定义图标,在相同的位置,作为微调器(带下拉菜单)工作。谢谢!
在 MenuItem 上单击您可以膨胀 PopupMenu,它的行为类似于 Spinner。
menu.xml
:
<item
android:id="@+id/action_filter_rating"
app:showAsAction="ifRoom"
android:icon="@drawable/ic_collections_white_24dp"
android:enabled="true"
android:title="@string/action_filter_rating"/>
Activity 菜单侦听器:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_filter_rating) {
View anchor = findViewById(R.id.action_filter_rating);
PopupMenu popup = new PopupMenu(this, anchor);
popup.getMenuInflater().inflate(R.menu.your_spinner_menu, popup.getMenu());
popup.getMenu().add("You can dynamically add items");
popup.setOnMenuItemClickListener(...);
popup.show();
return true;
}
return super.onOptionsItemSelected(item);
}
我正在尝试将工具栏中的图标用作微调器...这是我的 menu.xml
:
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="@+id/action_search_cat"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="androidx.appcompat.widget.SearchView"
android:title=".."/>
<item
android:id="@+id/action_filter_rating"
app:showAsAction="always"
android:actionViewClass="android.widget.Spinner"
android:icon="@drawable/ic_star" // THIS LINE HAVE NO EFFECT
android:title=".." />
<item
android:id="@+id/action_manage_category"
android:title=".."
app:showAsAction="never" />
<item
android:id="@+id/action_export_csv"
android:title="@string/export"
app:showAsAction="never" />
现在下拉图标是默认图标 (android.widget.Spinner),有没有办法覆盖该图标?我想将微调器保留在菜单项中。 我想更改此图标:
我将接受所有其他解决方案,以在工具栏中实现自定义图标,在相同的位置,作为微调器(带下拉菜单)工作。谢谢!
在 MenuItem 上单击您可以膨胀 PopupMenu,它的行为类似于 Spinner。
menu.xml
:
<item
android:id="@+id/action_filter_rating"
app:showAsAction="ifRoom"
android:icon="@drawable/ic_collections_white_24dp"
android:enabled="true"
android:title="@string/action_filter_rating"/>
Activity 菜单侦听器:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_filter_rating) {
View anchor = findViewById(R.id.action_filter_rating);
PopupMenu popup = new PopupMenu(this, anchor);
popup.getMenuInflater().inflate(R.menu.your_spinner_menu, popup.getMenu());
popup.getMenu().add("You can dynamically add items");
popup.setOnMenuItemClickListener(...);
popup.show();
return true;
}
return super.onOptionsItemSelected(item);
}