2016-03-26 3 views
-4

Как изменить весь вид фрагмента с другим фрагментом!Как изменить текущий фрагмент с другим фрагментом

Или как закрыть текущий фрагмент с другим фрагментом, пожалуйста, объясните, с макетом также

Спасибо заранее ...

+2

Google это первое, имеется п число обучающих программ. –

+1

Я голосую, чтобы закрыть этот вопрос как вне темы, потому что OP даже не потрудился провести минимальные исследования в Google. –

ответ

0
getSupportFragmentManager().beginTransaction().replace(R.id.fragmentlayout,new fragment()).commit() 

Это поможет вам заменить существующий фрагмент в связи с идентификатором FragmentLayout с new fragment().

Спасибо, надеюсь, это было полезно.

0

Вы можете добавлять или заменять фрагменты в своей деятельности. Создание FrameLayout в рабочем месте: xml.

Затем сделайте это в своей деятельности до замените фрагмент. Вы можете использовать один и тот же код каждый раз, когда хотите заменить один фрагмент другим.

FragmentManager manager = getFragmentManager(); 
FragmentTransaction transaction = manager.beginTransaction(); 
transaction.add(R.id.container,YOUR_FRAGMENT_NAME,YOUR_FRAGMENT_STRING_TAG); 
transaction.addToBackStack(null); 
transaction.commit(); 

Если вы хотите добавить фрагмент вместо замены, то сделать это:

FragmentManager manager = getFragmentManager(); 
FragmentTransaction transaction = manager.beginTransaction(); 
transaction.replace(R.id.container,YOUR_FRAGMENT_NAME,YOUR_FRAGMENT_STRING_TAG); 
transaction.addToBackStack(null); 
transaction.commit(); 

Если вы хотите заменить добавленный frogment с ану другого фрагмента, то вы должны удалить предыдущий фрагмент первой (или вы можете скрыть предыдущий фрагмент, в зависимости от вашего требования). Смотрите следующий код:

Fragment fragment = getSupportFragmentManager().findFragmentByTag(YOUR_FRAGMENT_STRING_TAG); 
if(fragment != null) 
    getSupportFragmentManager().beginTransaction().remove(fragment).commit(); 

См следующие связанные вопросы по SO:

Difference between add(), replace(), and addToBackStack()

Basic difference between add() and replace() method of Fragment

Difference between add() & replace() with Fragment's lifecycle

Или увидеть мой ответ на аналогичный вопрос:

How to start Fragment from an Activity

0

Сначала вы берете один фреймейл в своей деятельности, где вы добавляете фрагмент.

FragmentManager manager = getFragmentManager(); 
FragmentTransaction transaction = manager.beginTransaction(); 
transaction.add(R.id.framelayout,fragment_1); 
transaction.addToBackStack(null); 
transaction.commit(); 

При замене первого фрагмента со вторым, который вы пишете, просто изменить fragment_1 к fragment_2

FragmentManager manager = getFragmentManager(); 
FragmentTransaction transaction = manager.beginTransaction(); 
transaction.add(R.id.framelayout,fragment_2); 
transaction.addToBackStack(null); 
transaction.commit(); 
Смежные вопросы