Не найдено представления для идентификатора "bla bla bla" для грамматически созданного framlayout
Я создаю раскладку фрейма программно. Затем я программно создаю фрагмент.. Затем я хочу добавить фрагмент в раскладку фрейма.. этот процесс происходит каждый раз, когда я нажимаю кнопку. Для идентификатора framelayout и тега фрагмента я создал целочисленную переменную приращения ("id" инициализируется как "0" в начале).
Когда я нажимаю кнопку new framelayout с новым идентификатором create, создаю фрагмент с новым тегом, к этому framelayout добавляется фрагмент... И спорные перекрывающиеся представления..
Вот мой код,
public void add_tab(View view)
{
id++;
String b = String.valueOf(id);
tab_frame = new FrameLayout(this);
FrameLayout.LayoutParams layoutparams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT,Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
tab_frame.setLayoutParams(layoutparams);
tab_frame.setId (id);
FragmentManager fragment_manager1 = getSupportFragmentManager (); // fragment manager for dealing with fragments
frag_one frag_one_obj = new frag_one(); // creating a onj of fragment "frag_one"
FragmentTransaction fr_transaction = fragment_manager1.beginTransaction ();
fr_transaction.add (tab_frame.getId (),frag_one_obj,b);
fr_transaction.addToBackStack ("Fragment Add");
fr_transaction.commit ();
frag_one_obj.setArguments (bundle);
tab_frame.setVisibility (View.VISIBLE);
}
Когда я отлаживаю, я получаю эту ошибку в logcat,
No view found for id 0x1 (unknown) for fragment frag_one{42bb0cc8 (d45032ae-5aa4-485f-87a6-da20f3d5ce1f) id=0x1 1}
Я не знаю, почему это происходит... Я уже создаю framelayout и назначаю для него идентификатор... Но эта ошибка говорит о том, что для этого perticular id не назначено никакого представления, поэтому нельзя добавить фрагмент..
Пожалуйста, помогите мне.. Заранее спасибо..
1 ответ
Вам нужно добавить созданный FrameLayout
как дочерний элемент вашего хостинга. В противном случае он прикреплен не где. Вот почему представление не может быть найдено с его идентификатором.