这是我的ItemListFragment
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/dark_gray"
android:orientation="vertical">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_weight=".15"
android:weightSum="10"
android:background="@color/white"
android:layout_height="0dp">
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center"
android:src="@drawable/action_back"
android:id="@+id/imageView2" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="6"
android:layout_gravity="center_vertical"
android:weightSum="1"
android:orientation="horizontal">
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/idSpinner"
style="@style/TextViewSpinnerItem"
android:popupBackground="@color/dark_gray"
android:layout_gravity="center"
android:layout_weight=".8"
android:spinnerMode="dropdown" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight=".2"
android:visibility="gone"
android:layout_gravity="center_vertical"
android:src="@drawable/down"/>
</LinearLayout>
<ImageView
android:layout_width="0dp"
android:layout_height="30dp"
android:text="sort"
android:layout_weight="1.5"
android:background="@drawable/iconssort"
android:id="@+id/btnSort" />
<ImageView
android:layout_width="0dp"
android:layout_height="30dp"
android:background="@drawable/iconsfilter"
android:layout_weight="1.5"
android:id="@+id/btnFilter" />
</LinearLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".85"
android:id="@+id/mapContainer"
android:layout_marginTop="10dp">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@android:color/transparent"
android:dividerHeight="10dp"
android:id="@+id/lvCategoryItems"
android:layout_gravity="center_vertical"/>
</FrameLayout>
</LinearLayout>
我想在容器中替换地图片段,就像FrameLayout
ID为mapContainer
一样。但是我的上面的布局已经在运行时位于片段而非活动中。
Fragment fragment = new MapViewFragment();
FragmentManager manager = getActivity.getSupportFragmentManager();
manager.beginTransaction().replace(R.id.mapContainer, fragment).commit();
当我尝试在此容器中进行片段事务时。
它给出:没有找到ID为"@+id/Mapcontainer"
的视图。
答案 0 :(得分:0)
你的片段类初始化是错误的......
更改代码
Fragment fragment = new MapViewFragment();
FragmentManager manager = getActivity.getSupportFragmentManager();
manager.beginTransaction().replace(R.id.mapContainer, fragment).commit();
到
MapViewFragment fragment = new MapViewFragment();
FragmentManager manager = getActivity.getSupportFragmentManager();
manager.beginTransaction().replace(R.id.mapContainer, fragment).commit();
并确保容器的id,即framelayout(可能)是正确的... R.id.mapContainer应该是MainActivity中framelayout的id ...
答案 1 :(得分:0)
在ItemListFragment的onCreateView之后调用代码替换片段吗?因为视图mapContainer只存在于附加到布局的ItemListFragment之后。
而且因为你在另一个片段中添加了一个片段,我认为你应该使用FragmentManager manager = getChildFragmentManager();