2016-03-31 6 views
0

Я разрабатываю приложение для музыкального плеера, и это мой второй раз, работая с андроид-студией и фрагментами в целом. Я наблюдал за этим множество обучающих видеороликов, но у меня возникли проблемы с отображением нескольких фрагментов. Возможно, использование фрагментов - это не способ этого. Но в основном то, что у меня есть сейчас, - это фиксированное меню наверху и 5 фрагментов чуть ниже (друг над другом).Несколько фрагментов Android Studio

То, что я надеялся сделать, - щелкнуть каждую кнопку, чтобы один фрагмент загрузился, чтобы у вас было одно действие, но 5 фрагментов, которые загружаются при нажатии кнопок. Но проблема, с которой я столкнулся сейчас, - это не останавливать один фрагмент и загружать другой, они загружаются друг на друга. Есть ли способ сделать это?

Ниже приведен образ проекта, который я имел в виду. Синяя коробка - это то, где пять фрагментов, и сейчас они перекрываются. Любая помощь будет оценена :)

Design

EDIT: Оказывается, ответ был мне нужен, чтобы определить один макет для всех фрагментов. Всем спасибо.

+0

разместить свой код здесь –

+0

Вы хотите использовать fragmentmanager Http://stackoverflow.com/questions/7790945/how-can-i-use-fragmentmanager-to-display-fragment-abc-in-a-framelayout. API doc: http://developer.android.com/reference/android/app/FragmentManager.html – Bram

+0

напишите свой код .... !!! –

ответ

0

Пожалуйста, отправьте код. Но вот что я могу разобрать до сих пор от вашей проблемы,

Я предполагаю, что вы просто используете FragmentManager.beginTransaction.add() снова и снова.

Если это так, пожалуйста, измените код

FragmentManager.beginTransaction().replace(
    containerViewID, 
    new FragmentYouWantToReplace 
); 

Что это делает удаляет предыдущий фрагмент и добавляет этот новый фрагмент.

Таким образом, вы можете использовать свой фрагмент по умолчанию, используя add() во время загрузки нагрузки, но для каждой кнопки нажмите кнопку replace().

0

При вызове нового фрагмента вы должны заменить всегда один и тот же макет, тот, который вы хотите, чтобы показать информацию, как это:

frag_results frag_results = new frag_results(); 
       FragmentManager manager = getSupportFragmentManager(); 
       manager.beginTransaction().replace(R.id.framelayout_secundary, frag_results, frag_results.getTag()).commit(); 
Смежные вопросы