Есть Activity у которого есть свой тулбар. В этом activity два фрагмента, один из которых также содержит свой тулбар. Подключаю тулбар к активности и к фрагменту, и в итоге работает только для фрагмента. Как я понял, после второй привязки тулбара методом setSupportActionBar(toolbar), первая привязка перекрывается.
Код активности
public class MainActivity extends AppCompatActivity {
private FragmentManager fm;
private FragmentTransaction ft;
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fm = getSupportFragmentManager();
ft = fm.beginTransaction();
ft.replace(R.id.container, new TitlesFragment(), null);
Fragment det = fm.findFragmentByTag(DetailsFragment.TAG);
if (det == null) {
det = new DetailsFragment();
ft.replace(R.id.container2, det, DetailsFragment.TAG);
} else ft.replace(R.id.container2, det);
ft.commit();
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
if(toolbar!=null) {
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_activity_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_edit:
Log.d("Log","edit");
return true;
case android.R.id.home:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
Код фрагмента
public class DetailsFragment extends Fragment {
private static TextView tv;
public static final String TAG = "DetailsTag";
private static String DETAIL = "DETAIL";
private static Toolbar toolbar;
private ActionBar actionBar;
public DetailsFragment(){}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View v = inflater.inflate(R.layout.details, container, false);
tv = (TextView) v.findViewById(R.id.textView);
toolbar = (Toolbar) v.findViewById(R.id.toolbar);
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
actionBar = ((AppCompatActivity)getActivity()).getSupportActionBar();
actionBar.setTitle("Title");
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
tv.setText(DETAIL);
return v;
}
public void set(String d, String t){
DETAIL=d;
if(tv!=null)
tv.setText(d);
if(toolbar!=null) {
//actionBar.setTitle(t);
}
}
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники