2016-02-19 2 views
1

Фрагмент 1 открывается навигационным ящиком, а фрагмент 2 открывается фрагментом 1 Теперь я хочу вернуться от фрагмента 2 к фрагменту 1 с помощью кнопки возврата, как показано на рисунке, и хочу скрыть значок ящика из фрагмента 2Как я могу вернуться от фрагмента 2 к фрагменту 1? как показано на рисунке

enter image description here

+1

Использование Android навигации Drawer - http://developer.android.com/training/implementing-navigation/nav-drawer.html – Inducesmile

+0

Я уже использую ящик – Innocent

ответ

0

Вы можете сделать это, добавив Acti vity, а затем сначала активировать вызов из предыдущего фрагмента, а затем вызвать нужный фрагмент в действии и, наконец, добавить кнопку назад в действие.

public class DetailActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_detail); 
     /* ActionBar actionBar = getSupportActionBar(); 
     actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
     actionBar.setCustomView(R.layout.header); 
     actionBar.setDisplayHomeAsUpEnabled(true); */ 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     toolbar.setNavigationIcon(R.drawable.back); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setTitle("Smart Take Away"); 
     // getSupportActionBar().setDisplayShowTitleEnabled(false); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     if (toolbar != null) { 
      toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        onBackPressed(); 
       } 
      }); 
     } 
    // Bundle extras = getIntent().getExtras(); 

     if (savedInstanceState == null) { 
      try { 
       android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); 
       android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
       DetailedListFragment fragment = new DetailedListFragment(); 
      // fragment.setArguments(extras); 
       fragmentTransaction.replace(R.id.detailfragment, fragment); 
       fragmentTransaction.commit(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    @Override 
    public void onBackPressed() { 
     super.onBackPressed(); 

    } 
} 
+0

Да это работает для меня, как магия спасибо Exception Lover , – Innocent

0

Вы можете использовать щелчок или салфетки событие

получить экземпляр вашего второго фрагмента

SecondFragment fragment = new SecondFragment(); 
fragmentManager.beginTransaction().replace(R.id.first_container, fragment).commit();