Да. Я знаю, что есть много вопросов, таких как мои, но я смотрел их всех (я думаю)Невозможно добавить фрагмент в действие программно
Я думаю, что я все делаю правильно, но он все еще не работает У меня есть frameLayout. Я попытался использовать add() вместо replace(), и это не работает.
Я пытаюсь добавить фрагмент в метод OnLoadFinished().
Мой код:
Bundle fragBundle = new Bundle();
fragmentManager = getFragmentManager();
fragmentTransaction = fragmentManager.beginTransaction();
ContactInfoFragment contactInfoFragment = (ContactInfoFragment) fragmentManager.findFragmentByTag("contactInfo");
if (contactInfoFragment == null){
switch(type) {
case "44": {
//passing some data to bundle
break;
}
case "223":{
//passing some data to bundle
break;
}
}
contactInfoFragment = new ContactInfoFragment();
contactInfoFragment.setArguments(fragBundle);
fragmentTransaction.replace(R.id.contact_layout, contactInfoFragment, "contactInfo");
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
fragmentManager.executePendingTransactions();
}
Пожалуйста, помогите мне
Мой макет:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:background="#ffffff"
tools:context="com.example.tenderplan.activities.ElementActivity">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/scrollView"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:background="#ffffff"
tools:context="com.example.tenderplan.activities.ElementActivity"
android:id="@+id/element_layout"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/contact_layout">
</FrameLayout>
<fragment
android:name="com.example.tenderplan.fragments.DocumentsFragment"
android:id="@+id/documents_fragment"
android:layout_height="wrap_content"
android:layout_width="match_parent"
tools:layout="@layout/documents_fragment"
android:layout_below="@+id/contact_info_fragment"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp" />
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/attachmentslayout2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/documents_fragment">
</LinearLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id = "@+id/comments_layout">
</FrameLayout>
</LinearLayout>
</ScrollView>
На самом деле, мне нужно contact_layout заменить.
Какую версию Android вы поддерживаете? Вы вызываете этот код из «Фрагмента» или «Активность»? И можете ли вы разместить свой «Макет». – vguzzi
min api 14, я вызываю это из Activity. w8 в минуту, плохо добавить макет –
Вызывается метод 'onLoadFinish()'? –