2012-07-02 4 views
0

я называю Fragment в макете с помощьювызова ширина фрагмента из другого фрагмента

LinearLayout formLayout = (LinearLayout)findViewById(R.id.mainLayout); 
formLayout.removeAllViews(); 

FragmentTransaction fragmentTransaction =  fragmentManager.beginTransaction(); 
PatientSearch fragment = new PatientSearch(maincontrolActivity.this); 

fragmentTransaction.add(R.id.mainLayout,fragment, "MY_FRAG"); 
fragmentTransaction.commit(); 

В PatientSearch У меня есть кнопка, я хочу, когда нажмите на другой нагрузки Fragment, но в пределах boundry старого Fragment.

Любая идея, как это сделать?

ответ

2

Не следует звонить Fragment с (или выполнять FragmentTransactions) в пределах Fragment. Fragment s никогда не должны взаимодействовать с другими Fragment s, так как это противоречит их целям (они предназначены для повторного использования, как указано в документации).

Вместо этого вы должны создать обратный вызов события в Activity. Ваш Fragment s должен вызвать Activity, а затем Activity должен затем позвонить на другой номер Fragment. Это может звучать как дополнительная работа, но хороший дизайн может пройти долгий путь и облегчить вам жизнь.

+0

может дать более пример кода – AMH

+0

Этот раздел в документации описывает процесс. Пример кода реализует многострочный макет, при этом левая панель является списком, а правая панель представляет собой представление деталей. Каждый раз, когда вы нажимаете элемент списка на левой панели, фрагмент детали изменяется. Это делается с помощью события обратного вызова для активности, как описано здесь: http://developer.android.com/guide/components/fragments.html#EventCallbacks –

+0

Чтение документации * целиком еще раз, просто чтобы полностью понять фрагменты и их цель, также очень помогут в вашем понимании –

Смежные вопросы