Есть активити и фрагмент в фрагменте стоит DisplayHomeAsUpEnabled. При переходе с активити в фрагмент кнопка назад появляется все хорошо, но при нажатии и перехода назад в активити стрелочка остается отображаеться? Как убрать?
Пробывал не помогло:
getSupportActionBar().setHomeButtonEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setHomeAsUpIndicator(null);
Код кнопки в фрагменте DisplayHomeAsUpEnabled
@Override
public void onResume()
{
super.onResume();
((ActionBarActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
Код активити:
public class MainActivity extends ActionBarActivity implements ExpandableListView.OnChildClickListener, View.OnClickListener {
private static FragmentManager mManager;
Button button1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
button1 = (Button) findViewById(R.id.button1);
mManager = getSupportFragmentManager();
getSupportActionBar().setIcon(R.drawable.ic_launcher);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
/* FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});*/
// button1.setOnClickListener(this);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment fragment = null;
mManager.findFragmentById(R.id.fragmentContainer);
if (fragment == null) {
fragment = new sovety_Fragment();
mManager.beginTransaction()
.add(R.id.fragmentContainer, fragment)
.replace(R.id.fragmentContainer, fragment)
.addToBackStack(null)
.commit();
}
}
});
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
if (id == android.R.id.home) { onBackPressed(); return true; }
return super.onOptionsItemSelected(item);
}
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
return false;
}
@Override
public void onClick(View v) {
}
}
Ответ
Вы вызываете код, убирающий стрелку до того, как её показываете.
Т.к. вы убираете фрагмент нажатием кнопки "назад" именно в слушателе её нажатия надо убирать стрелку.
Засим попробуйте добавить обработчик нажатия кнопки назад в активити и именно в нём убрать стрелку:
@Override
onBackPressed()
{
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
super.onBackPressed();
}
Комментариев нет:
Отправить комментарий