Два тулбара в одном Activity

265
14 марта 2017, 13:18

Есть 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);
    }
}
}
READ ALSO
После обновления Android Studio перестал работать Hierarchy Viewer

После обновления Android Studio перестал работать Hierarchy Viewer

При запуске Android Device Monitr не работает Hierarchy ViewerВо всех окнах пишет ошибку:

1013
net::ERR_INCOMPLETE_CHUNKED_ENCODING tomcat8

net::ERR_INCOMPLETE_CHUNKED_ENCODING tomcat8

Подскажите пожалуйстаСтоит на Ubuntu 16

339
Resourcebundle de_DE и русские символы - иероглифы Java

Resourcebundle de_DE и русские символы - иероглифы Java

Подскажите пожалуйстаСделал перевод сайта при помощи Resourcebundle

264
Создание кастомного адаптера Android — ошибка

Создание кастомного адаптера Android — ошибка

Не могу понять как делать кастомный адаптерВот попробовал сделать как понял, но выходит ошибка при запуске приложения! Layout'ов 2 — в одном...

300