I'm using AppCompatActivity with theme Theme.MaterialComponents.DayNight.DarkActionBar
In AndroidTV I can't have the focus on the ActionBar menu buttons I added (to the right) using D-Pad :
<?xml version="1.0" encoding="utf-8"?>
<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=".home.HomeActivity">
<group android:checkableBehavior="single">
<item
android:id="#+id/action_search"
android:icon="#drawable/ic_search"
android:orderInCategory="2"
android:title="#string/search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="collapseActionView|ifRoom" />
<item
android:id="#+id/action_refresh"
android:icon="#drawable/ic_refresh"
android:orderInCategory="1"
android:title="#string/refresh"
app:showAsAction="collapseActionView|ifRoom" />
</group>
</menu>
Is there any solution ?
Thanks in advance for help !
Related
I don't understand why the second icon (filter) is appeared not properly (no padding on right?). Have you got some ideas guys?
This is my menu setup xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="#+id/menu_input_search"
android:title="#string/search"
android:orderInCategory="1"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="ifRoom"
android:visible="false"/>
<item
android:id="#+id/menu_search"
android:icon="#drawable/ic_search_tb"
android:orderInCategory="1"
android:visible="false"
app:showAsAction="ifRoom" />
<item
android:id="#+id/menu_filter"
android:icon="#drawable/ic_filter_tb"
android:orderInCategory="2"
android:visible="false"
app:showAsAction="always" />
</menu>
I want a menu item in my toolbar when clicked to act like a SearchView. I tried this, but the icon was still the default SearchView icon...
<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_edit_courses"
android:title="#string/action_edit"
android:orderInCategory="100"
android:icon="#android:drawable/ic_menu_edit"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="always" />
<item
android:id="#+id/action_delete_courses"
android:title="#string/action_delete"
android:orderInCategory="100"
android:icon="#android:drawable/ic_menu_delete"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="ifRoom" />
Please I don't know how to get through with it... Thank you in advance
I want to hide all icons in action bar when user touches the search icon. But one icon is not hiding.
My xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="#+id/action_search"
android:icon="#drawable/ic_search_white_36dp"
android:title="Ara"
app:showAsAction="always"
android:iconifiedByDefault="true"
app:actionViewClass="android.widget.SearchView"/>
<item android:id="#+id/action_shuffle"
android:icon="#drawable/ic_autorenew_white_24dp"
android:title="Karıştır"
app:showAsAction="always" />
<item android:id="#+id/action_premium"
android:icon="#drawable/ic_star_white_24dp"
android:title="Premium"
app:showAsAction="always" />
<item android:id="#+id/action_favorites"
android:icon="#drawable/ic_people_white_24dp"
android:title="Takip Listesi"
app:showAsAction="always" />
<item android:id="#+id/action_settings"
android:icon="#drawable/ic_settings_white_24dp"
android:title="Settings"
app:showAsAction="always" />
<item android:id="#+id/action_fullpicture"
android:icon="#drawable/ic_action_picture"
app:showAsAction="always"
android:visible="false" />
</menu>
Before:
After:
How can I hide action_shuffle too? Other icons automaticly hiding I didn't do anything special.
You should change the app:showAsAction = "always" to app:showAsAction = "ifRoom".
Other way could be this answer, take a look.
In my application, I am using Theme.AppCompat.Light.DarkActionBar but I am facing a weird problem. I have created SearchView in ActionBar and has set its property app:showAsAction="collapseActionView|ifRoom"
but the SearchView is not expanded or collapsed on touch.
menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="#+id/search"
android:title="#string/search"
android:icon="#android:drawable/ic_menu_search"
app:showAsAction="collapseActionView|ifRoom"
android:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
I have tried different solutions but none worked. Any idea?
try to change
android:actionViewClass="android.support.v7.widget.SearchView"
by
app:actionViewClass="android.support.v7.widget.SearchView"
This worked for me
<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="com.ipartie.views.activities.HomeActivity">
<item
android:id="#+id/search"
android:title="#string/search"
android:icon="#drawable/abc_ic_search_api_mtrl_alpha"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView"/>
</menu>
I've got this problem but the thing is that I do have a title
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/tools">
<!-- Search, should appear as action button -->
<item
android:title="#string/action_search"
android:id="#+id/action_search"
android:icon="#drawable/ic_action_search"
android:showAsAction="ifRoom" />
<item
android:title="#string/action_settings"
android:id="#+id/action_settings"
android:showAsAction="never" />
</menu>
in the strings xml file i did the strings, the program even switches the action_search and action_settings with its string - search and settings.
Just a wrong XML namespace! Try with:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
</menu>
And as G.T. suggested you should consider using appcompat on the showAsAction property (only needed if you want to support API < 11):
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="#+id/item1"
android:icon="#drawable/ic_launcher"
app:showAsAction="ifRoom|withText"
android:title="#string/Add_New" />
</menu>
Note:
The appcompat library is compatible with some old Android versions (API 7+) that can't handle the showAsAction property because they don't have the ActionBar (API < 11).
can you remove those things xmlns:android="schemas.android.com/apk/res-auto"; xmlns:android="schemas.android.com/tools";
Also try to follow Goolge dev examples here http://developer.android.com/guide/topics/ui/menus.html
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="#+id/new_game"
android:icon="#drawable/ic_new_game"
android:title="#string/new_game"
android:showAsAction="ifRoom"/>
<item android:id="#+id/help"
android:icon="#drawable/ic_help"
android:title="#string/help" />
</menu>
It actually need a namespace to identify the process.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="#+id/action_shuffle"
android:icon="#drawable/android_music_player_rand"
android:orderInCategory="1"
app:showAsAction="always"
android:title="Shuffle"
android:onClick="shuffle"/>
<item
android:id="#+id/action_end"
android:icon="#drawable/end"
android:orderInCategory="2"
app:showAsAction="always"
android:title="End"
android:onClick="end"/>
</menu>