Salut Nikhil vous devez utiliser l'affichage personnalisé pour onglet définir la valeur de comptage sur le changement de résultat de recherche en utilisant le bus d'événements. savoir sur bus Evet reffer EventBus: Events for Android
search_tab_layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:gravity="center"
android:background="@color/app_blue">
<!-- Menu Item Image -->
<TextView
android:id="@+id/tabTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/count"
android:text="Book"
android:textSize="12sp"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingRight="8dp"
android:layout_centerVertical="true"
android:textColor="@color/white"
app:customTypeface="mayriad_pro_regular"/>
<TextView
android:id="@+id/count"
android:layout_width="18dp"
android:layout_height="18dp"
android:text="0"
android:gravity="center"
android:textSize="10sp"
android:background="@drawable/cart_circle"
android:textColor="@color/app_blue"
app:customTypeface="mayriad_pro_semi_bold"/>
</LinearLayout>
Declare onglet veiws onCreate
tab1 = LayoutInflater.from(getActivity().getApplicationContext()).inflate(R.layout.search_tab_layout, null);
tab2 = LayoutInflater.from(getActivity().getApplicationContext()).inflate(R.layout.search_tab_layout, null);
tab3 = LayoutInflater.from(getActivity().getApplicationContext()).inflate(R.layout.search_tab_layout, null);
En onCreateOptionMenu utiliser EventBus au feu événement sur la recherche
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_search, menu);
SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
if (null != searchView) {
searchView.setSearchableInfo(searchManager
.getSearchableInfo(getActivity().getComponentName()));
searchView.setIconifiedByDefault(false);
}
SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
public boolean onQueryTextChange(String newText) {
// this is your adapter that will be filtered
EventBus.getDefault().post(new SearchViewFilterEvent(newText));
return true;
}
public boolean onQueryTextSubmit(String query) {
//Here u can get the value "query" which is entered in the search box.
return false;
}
};
searchView.setOnQueryTextListener(queryTextListener);
MenuItemCompat.setOnActionExpandListener(menu.getItem(0), new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem menuItem) {
adapter.setIsHideWashAndFold(true);
tabLayout.removeTabAt(0);
adapter.notifyDataSetChanged();
llSpinner.setVisibility(View.GONE);
tabLayout.getTabAt(0).setCustomView(tab);
tabLayout.getTabAt(1).setCustomView(tab2);
tabLayout.getTabAt(2).setCustomView(tab3);
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem menuItem) {
adapter.setIsHideWashAndFold(false); adapter.notifyDataSetChanged();
llSpinner.setVisibility(View.VISIBLE);
initView();
return true;
}
});
new Handler().post(new Runnable() {
@Override
public void run() {
final View v = getActivity().findViewById(R.id.menu_search);
if (v != null) {
v.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return false;
}
});
}
}
});
}
Merci. Cela a fonctionné. – Nikhil