I used tool bar in fragment. but the menu always appear in hardware button. am also tried with view configuration "sHasPermanentMenuKey" but it still show in hardware menu. How to make the menu item to be appear in toolbar instead of hardware button? Thank you.
//fragment onCreate method
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
ViewConfiguration config = ViewConfiguration.get(getActivity());
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
setHasOptionsMenu(true);
}
//fragment onCreateOtionsMenu
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// TODO your code to hide item here
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
inflater.inflate(R.menu.home, menu);
}
//Activity onCreate method
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
try {
ViewConfiguration config = ViewConfiguration.get(Home.this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
e.printStackTrace();
}
}
// menu item
<?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_filter"
android:title="@string/action_filter"
app:showAsAction="always"
android:icon="@drawable/ic_filter"
/>
<item
android:id="@+id/action_map"
android:title="@string/action_map"
app:showAsAction="always"
android:icon="@drawable/ic_map"
/>
<item
android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@drawable/ic_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="collapseActionView|ifRoom"
/>
</menu>
I tried with FragmentActivity and AppCompatActivity but its not working.