У меня проблема при поиске. Мой поисковый запрос использует onQuetyTextChanged, чтобы показывать результаты поиска каждый раз, когда текст изменяется. Я хочу, чтобы данные возвращались в исходное состояние при удалении ввода текста. Я использую этот код transaction.replace(R.id.frame_container, moviesFragment);
для восстановления фрагмента, но фрагмент результата поиска все еще находится за исходным фрагментом, как на картинке ниже. Как удалить фрагмент результатов поиска?
Изображение после выполнения поиска. Это мой код searchView
final SearchView searchView = (SearchView) (menu.findItem(R.id.search)).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
searchView.clearFocus();
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
if (newText.length() > 0) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
Bundle bundle = new Bundle();
bundle.putString("query", newText);
SearchMovieFragment fragment = new SearchMovieFragment();
fragment.setArguments(bundle);
transaction.replace(R.id.frame_container, fragment);
transaction.commit();
} else {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
MoviesFragment moviesFragment = new MoviesFragment();
transaction.replace(R.id.frame_container, moviesFragment);
transaction.commit();
}
return false;
}
});
и мой код деятельности. xml
<LinearLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true"
android:background="@android:color/white"
tools:context=".MainActivity">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/color_primary_gradient"
app:tabTextColor="#D4AF37"/>
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
Как я могу это исправить?