Android:滑动抽屉内容与整个屏幕重叠

时间:2015-10-26 10:48:23

标签: android android-layout android-fragments fragment slide

我有一个使用滑动抽屉的应用程序。我不得不做一些改变,滑动抽屉内容是一个简单的相对布局,但我不得不改变它以包含一个片段。

这是更改前的滑块布局:

<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),也不仅限于滑块空间,而是占据了整个屏幕

正如您在屏幕截图中看到的那样,滑块是打开的,它在屏幕上显示正确的部分(请参阅处理程序的位置[右侧中间的小橙色矩形],所以我认为问题是实际上片段内容没有定位在滑块

任何人都可以帮我这个吗?

see screeenshot

1 个答案:

答案 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();

解决了问题