我有一个使用滑动抽屉的应用程序。我不得不做一些改变,滑动抽屉内容是一个简单的相对布局,但我不得不改变它以包含一个片段。
这是更改前的滑块布局:
<SlidingDrawer
android:id="@+id/drawer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:orientation="horizontal"
android:handle="@+id/handle"
android:rotation="180"
android:content="@+id/content">
<ImageView
android:id="@id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/handle"
android:rotation="180"
/>
<RelativeLayout
android:id="@id/content"
android:background="@drawable/border"
android:layout_width="140dip"
android:layout_height="fill_parent"
android:orientation="vertical"
android:rotation="180"
android:focusable="true"
android:focusableInTouchMode="true">
<EditText
android:drawableLeft="@android:drawable/ic_menu_search"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:id="@+id/editInp"
android:layout_marginLeft="20dip"
android:imeOptions="actionDone"
android:layout_marginRight="20dip"
android:layout_marginTop="15dip"
android:hint=""
android:textColor="@color/themeapp"
android:background="@drawable/layout_corner_white"
android:singleLine="true"
android:inputType="textNoSuggestions"/>
<ImageView
android:id="@+id/clear_button"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_marginTop="23dip"
android:layout_alignRight="@id/editInp"
android:src="@android:drawable/ic_menu_close_clear_cancel"/>
<RelativeLayout
android:id="@+id/progress_conteiner"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/footer1"
android:layout_below="@+id/header1"
android:visibility="gone">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
style="?android:attr/progressBarStyle"/>
</RelativeLayout>
<ExpandableListView
android:id="@+id/list"
android:layout_below="@+id/editInp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="20dip"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:divider="@color/themeapp"
android:dividerHeight="1dp"
android:indicatorRight="300dp" />
</RelativeLayout>
</SlidingDrawer>
在更改之后它看起来像这样:
<SlidingDrawer
android:id="@+id/drawer"
android:layout_width="140dp"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:orientation="horizontal"
android:handle="@id/handle"
android:rotation="180"
android:content="@id/content_frame">
<ImageView
android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/handle"
android:rotation="180"
/>
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="140dp"
android:layout_height="fill_parent" >
</FrameLayout>
</SlidingDrawer>
java代码来膨胀片段:
getActivity().getSupportFragmentManager().beginTransaction().add(R.id.content_frame, new FragmentFleetListMap(this)).commit();
之前的滑块内容已被移动(未更改)为单独的布局文件,以便在新创建的片段中使用。
之前,滑块工作了,但现在我看到片段内容与活动内容重叠(请参阅下面的screeenshot),也不仅限于滑块空间,而是占据了整个屏幕
正如您在屏幕截图中看到的那样,滑块是打开的,它在屏幕上显示正确的部分(请参阅处理程序的位置[右侧中间的小橙色矩形],所以我认为问题是实际上片段内容没有定位在滑块
中任何人都可以帮我这个吗?
答案 0 :(得分:0)
看起来像这一行:
getActivity().getSupportFragmentManager().beginTransaction().add(R.id.content_frame, new FragmentFleetListMap(this)).commit();
在mapfragment上“添加”包含列表的片段而不是frameLayout。将其改为:
getChildFragmentManager().beginTransaction().add(R.id.content_frame, new FragmentFleetListMap(this)).commit();
解决了问题