У меня есть фрагмент меню, но оно не отображается так, как должно.Это может быть покрыто панелью инструментов деятельности
Как мне показать меню из меню фрагментов?Прямо сейчас тот, который показывает, из действия
полный код меню фрагмента
class Search : Fragment() {
var searchAdapter: SearchAdapter? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
val view = inflater.inflate(R.layout.fragment_search, container, false)
val toolbar = view.findViewById<Toolbar>(R.id.toolbar_search)
// placing toolbar in place of action bar
if(activity is AppCompatActivity){
(activity as AppCompatActivity).setSupportActionBar(toolbar)
}
val recyclerView = view.findViewById<RecyclerView>(R.id.search_result_tv)
val model = ViewModelProviders.of(this).
get(picodiploma.dicoding.database.picodiploma.dicoding.database.search.adapter.SearchView::class.java)
model.getData().observe(this, Observer {
resultsItem ->
val layoutManager = LinearLayoutManager(context)
recyclerView.layoutManager = layoutManager
searchAdapter = SearchAdapter((resultsItem as ArrayList<ResultsItem>?)!!, this.context!!)
recyclerView.adapter = searchAdapter
recyclerView.visibility = View.VISIBLE
})
return view
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.search, menu)
val searchItem = menu.findItem(R.id.search_)
val searchView = searchItem?.actionView as SearchView
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(s: String): Boolean {
return false
}
override fun onQueryTextChange(s: String): Boolean {
return false
}
})
}
}
полный код действия
public class BottomNavigation extends AppCompatActivity {
private static Fragment fragment = new Fragment();
private TvShow tvShow = new TvShow();
private FilmShow filmShow = new FilmShow();
private FavoritShow favoritShow = new FavoritShow();
private FilmFavoritShow filmFavoritShow = new FilmFavoritShow();
private Search search = new Search();
public static boolean isDeletedTv = false;
public static boolean isDeletedFilm = false;
private String title;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bottom_navigation);
BottomNavigationView navView = findViewById(R.id.nav_view);
Toolbar toolbar = findViewById(R.id.toolbar);
// placing toolbar in place of action bar
setSupportActionBar(toolbar);
navView.setSelectedItemId(R.id.navigation_tv);
toolbar.setVisibility(View.VISIBLE);
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container_bottomnav,
tvShow).commit();
fragment = tvShow;
title = "Tv";
if (isDeletedTv) {
FavoritShow FavoritTv = new FavoritShow();
navView.setSelectedItemId(R.id.navigation_favorit_tv);
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container_bottomnav,
FavoritTv).commit();
fragment = FavoritTv;
title = "Favorit";
isDeletedTv = false;
} else if (isDeletedFilm) {
FilmFavoritShow FavoritFilm = new FilmFavoritShow();
navView.setSelectedItemId(R.id.navigation_favorit_film);
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container_bottomnav,
FavoritFilm).commit();
fragment = FavoritFilm;
title = "Favorit Film";
isDeletedFilm = false;
}
BottomNavigationView.OnNavigationItemSelectedListener navigationItemSelected;
navigationItemSelected = menuItem -> {
switch (menuItem.getItemId()) {
case R.id.navigation_tv:
toolbar.setVisibility(View.VISIBLE);
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container_bottomnav,
tvShow).commit();
fragment = tvShow;
title = "Tv";
break;
case R.id.search_tv:
toolbar.setVisibility(View.GONE);
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container_bottomnav,
search).commit();
fragment = search;
title = "Search Tv";
break;
case R.id.navigation_film:
toolbar.setVisibility(View.VISIBLE);
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container_bottomnav,
filmShow).commit();
fragment = filmShow;
title = "Film";
break;
case R.id.navigation_favorit_tv:
toolbar.setVisibility(View.VISIBLE);
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container_bottomnav,
favoritShow).commit();
fragment = favoritShow;
title = "Favorit";
break;
case R.id.navigation_favorit_film:
toolbar.setVisibility(View.VISIBLE);
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container_bottomnav,
filmFavoritShow).commit();
fragment = filmFavoritShow;
title = "Favorit Film";
break;
}
toolbar.setTitle(title);
return true;
};
navView.setOnNavigationItemSelectedListener(navigationItemSelected);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container_bottomnav,
fragment).commit();
} else {
fragment = getSupportFragmentManager().getFragment(savedInstanceState, "fragment");
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
if (fragment.isAdded()) {
getSupportFragmentManager().putFragment(outState, "fragment", fragment);
}
super.onSaveInstanceState(outState);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_change_settings) {
Intent intent = new Intent(Settings.ACTION_LOCALE_SETTINGS);
startActivity(intent);
}
return super.onOptionsItemSelected(item);
}
}
Существует одно действие BottomNavigation
, которое может вызывать 5 фрагментов на выбранных нижних панелях навигации, а также меню и заголовок.У меня есть один фрагмент под названием Search
, который имеет свое собственное меню.Как мне надуть это меню?